大模型应用开发(八)_调用LangChain
大模型应用开发(八)_调用LangChain
·
3. 调用LangChain
不止是调用 API:LangChain 如何串联起 LLM 的“大脑”与“外部世界”
- 痛点切入: 纯粹调用 LLM API(如 OpenAI、Gemini)虽然强大,但难以实现复杂逻辑、记忆、与外部数据的交互,以及工具使用。
- LangChain 的定位: LangChain 框架正是为了解决这些“集成”与“编排”的挑战而生。它不是一个新的模型,而是一个**“胶水层”,一个“操作系统”**,用于高效地将大模型的核心能力(推理)与其他组件(数据、工具、记忆)连接起来。
3.1 LangChain 的六大模块
LangChain 六个核心模块,是其“编排”能力的基石:
| 模块名称 | 核心功能 | 解决的关键问题 |
|---|---|---|
| Models (模型) | 提供对各种 LLM 的统一接口封装。 | 统一调用,无论后端是 OpenAI、Google 还是开源模型。 |
| Prompts (提示词) | 结构化、动态化地管理和优化提示词模板。 | 解决提示词工程的复杂性,实现模板复用和变量注入。 |
| Chains (链) | LangChain 的核心。 顺序或逻辑性地将多个组件(如 LLM、提示词、数据处理步骤)连接起来。 | 实现多步骤的复杂逻辑流,例如“检索 -> 总结 -> 提问”。 |
| Retrieval (检索) | 集成外部数据源(如文档、数据库、网页)并进行高效检索。 | 解决 LLM 知识时效性和封闭性的问题(RAG 架构)。 |
| Memory (记忆) | 为对话添加“短期”和“长期”记忆功能。 | 使 LLM 能够记住前几轮的对话内容,实现连贯的上下文交流。 |
| Agents (智能体) | 允许 LLM 自己决定使用哪个工具、何时使用、以及使用何种参数。 | 赋予 LLM 决策和行动能力,使其能执行复杂、开放式的任务。 |
3.2 代码应用示例
3.2.1 简单调用

注意这里我们将参数加入到提示词之中,这样便于我们修改。
具体代码如下,供大家参考
from langchain.prompts import PromptTemplate
from langchain.output_parsers import CommaSeparatedListOutputParser
from langchain_openai import ChatOpenAI
# 定义模板
template = """
列出 {country} 的10个重大节日名称。
"""
# PromptTemplate 正确写法
prompt = PromptTemplate.from_template(template)
# 使用 CommaSeparatedListOutputParser
output_parser = CommaSeparatedListOutputParser()
parser_instructions = output_parser.get_format_instructions()
print("Parser Instructions:", parser_instructions)
# 填充 Prompt
final_prompt = prompt.invoke({
"country": "美国",
"parser_instructions": parser_instructions
})
print("Final Prompt:", final_prompt)
# 创建模型
model = ChatOpenAI(model_name="gpt-3.5-turbo")
# 调用模型
response = model.invoke(final_prompt)
# print("Raw Response:", response)
print("Response Content:", response.content)
3.2.2 招聘信息生成

代码如下
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
llm = ChatOpenAI(model_name="gpt-4o-mini")
# Prompt 模板内容
prompt_text = """
你是一名专业的HR招聘专员,请撰写一封招聘信息,以吸引 {job} 的潜在候选人。
请在信中提及【东方海外信息技术开发中心】的独特优势,
以及 {job} 的工作内容和工作环境。
请确保内容精炼、有吸引力,并且能够打动潜在候选人。
"""
prompt = PromptTemplate.from_template(prompt_text)
# 组装链
chain = prompt | llm
# 正确的输入参数
result = chain.invoke({"job": "大模型开发工程师"})
# 输出结果
print(result.content)
结果
**招聘信息:大模型开发工程师**
尊敬的候选人,
您好!
我们是**东方海外信息技术开发中心**,在技术创新与人才培养方面始终走在前沿。我们致力于建设一个开放、协作的工 作环境,鼓励每一位员工发挥创造力。现因业务发展需要,我们诚邀您加入我们的团队,担任**大模型开发工程师**。
**岗位职责:**
- 参与大规模机器学习模型的设计与开发,推动前沿技术的落地应用。
- 与跨功能团队合作,优化算法及模型性能,解决复杂的技术难题。
- 分析和处理大数据集,提取有价值的洞察,提升模型的准确性和效率。
- 在创新实验室中,与顶尖技术团队共同探索AI及大模型的应用场景。
**我们提供的工作环境:**
- 现代化办公空间,配备最新技术设备,营造高效、舒适的工作氛围。
- 灵活的工作时间与远程办公选项,支持员工实现工作与生活的平衡。
- 持续的职业发展支持,包括专业培训与技术研讨会,让您在快速发展的领域中始终保持竞争力。
- 友好的团队文化,鼓励开放的沟通与知识共享,在这里您的每一个想法都将受到重视。
**我们希望您具备:**
- 扎实的计算机科学基础,精通机器学习及深度学习相关技术。
- 熟悉大模型训练及优化经验,具备良好的编程能力(Python、TensorFlow、PyTorch等)。
- 出色的问题解决能力与团队协作能力,对前沿技术的热情与好奇心。
如果您想为未来的科技浪潮贡献自己的力量,并与一群充满激情的专业人士共事,请不要犹豫,加入我们!让我们一起探 索无限可能,共创索无限可能,共创辉煌明天。
期待您的回复!
**东方海外信息技术开发中心 招聘团队**
联系方式:[添加您的联系方式]
官网:[添加公司官网链接]
在此感谢您对东方海外的关注与期待!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)