开发基于提示工程的大语言模型(LLM)应用——学习笔记

本文是学习笔记。学习通过提示工程与大语言模型进行程序化的交互。

将从最基本的开始,比如使用哪些模型,以及如何向它们发送提示词并查看响应。

将逐步构建更复杂的提示词,并学习 LangChain 为我们提供的、用于与大语言模型交互的丰富工具。

Langchain链核心是运行时(runnable),它们能以多种方式组合的为工作流。

如何创建 LangChain 链

复制代码
 from langchain_nvidia_ai_endpoints import ChatNVIDIA
 from langchain_core.prompts import ChatPromptTemplate
 from langchain_core.output_parsers import StrOutputParser
 ​
 #创建模型实例
 base_url = 'http://llama:8000/v1'
 model = 'meta/llama-3.1-8b-instruct'
 llm = ChatNVIDIA(base_url=base_url, model=model, temperature=0)
 ​
 #Langchain运行时
 template = ChatPromptTemplate.from_template("Answer the following question: {question}")
 prompt = template.invoke({"question": "In what city is NVIDIA world headquarters?"})
 ​
 response = llm.invoke(prompt)
 print(response.content)

LangChain 表达语言(LCEL)

LCEL 用一种声明式的方法将运行时组合成 :可复用的功能组合。我们通过 LCEL 的管道 | 操作符将运行时链接在一起,从高层次来看,就是将一个运行时的输出传递给下一个。

对于那些使用过 Unix 命令行的朋友来说,您会熟悉 | 操作符,它是将各种程序的功能链接在一起以服务于整体任务的一种方式。

如果您对 Bash 不是很了解,不用太担心下面的单元。但对于了解的朋友,您会看到我们通过管道操作符创建了一个链,用 echo 打印"hello pipes",用 rev 反转字符串,然后用 tr 转为大写。

复制代码
 %%bash
 echo hello pipes | rev | tr 'a-z' 'A-Z'

同样,我们也可以用 LCEL 的管道操作符将许多 LangChain 的功能方便地链接在一起。

一个简单的链

让我们从一个简单的链开始,这与您之前的工作相关。为了方便查看,我们将再次在这里定义 LLM 实例和一个提示模板。

复制代码
 llm **=** ChatNVIDIA(base_url**=**base_url, model**=**model, temperature**=**0)
 template **=** ChatPromptTemplate.from_template("Answer the following question: {question}")

现在我们将通过管道将这两个组合在一起,创建我们的第一个 LCEL 链。一般来说,应该先经过提示模板,然后将生成的提示词发送给 LLM,因此我们将在管道中先放置模板。

复制代码
 chain = template | llm

可以使用链的辅助方法来可视化由 chain 表示的计算图。

复制代码
 print(chain.get_graph().draw_ascii())

如您所见,链将期待一个 PromptInput,这个输入将被传递到 ChatPromptTemplate 中,然后再传递到 ChatNVIDIA 模型,最终生成 ChatNVIDIAOutput

此外,我们还可以规定链所期望的输入类型,这次使用一个不同的辅助方法。

复制代码
 chain.input_schema.schema()

上面是一个 Pydantic 对象,我们现在不会深入探讨,但您会立即注意到它的 required 字段明确指出了我们需要传递给 chain 的任何属性名称。

链是由运行时组成的,但它们自己也是运行时。因此,就像我们对待任何其它运行时一样,可以使用其 invoke 方法。

我们知道链的开始部分需要一个提示输入,而提示模板希望我们为 question 提供一个值,因此我们将在调用链时提供预期的值。

持续更新中,未完待续。。。

相关推荐
薛定猫AI2 分钟前
【深度解析】Kimi K2.6 的长上下文 Agentic Coding 能力与 OpenAI 兼容 API 接入实践
人工智能·自动化·知识图谱
星爷AG I5 分钟前
20-6 记忆整合(AGI基础理论)
人工智能·agi
AI创界者7 分钟前
人工智能 GPT-Image DMXAPI Python AI绘画
人工智能
播播资源13 分钟前
GPT-5.5 模型功能深度解析:从模型介绍、核心特点到应用场景全景分析 如何快速接入使用
人工智能·gpt
谁似人间西林客17 分钟前
工厂大脑是什么?从经验驱动到AI辅助的决策跃迁
人工智能
Bode_200219 分钟前
构建工业龙虾的难点
人工智能·制造
lizhihai_9928 分钟前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
STLearner28 分钟前
SIGIR 2026 | LLM × Graph论文总结(图增强LLM,GraphRAG,Agent,多模态,知识图谱,搜索,推
人工智能·python·深度学习·神经网络·机器学习·数据挖掘·知识图谱
FreakStudio31 分钟前
MicroPython 内核开发者直接狂喜!这个 Claude 插件市场,把开发全流程做成了「对话式外挂」
python·单片机·嵌入式·面向对象·并行计算·电子diy
研究点啥好呢31 分钟前
快手产品经理面试题精选:10道高频考题+答案解析
人工智能·面试·产品经理