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等)。
- 出色的问题解决能力与团队协作能力,对前沿技术的热情与好奇心。

如果您想为未来的科技浪潮贡献自己的力量,并与一群充满激情的专业人士共事,请不要犹豫,加入我们!让我们一起探 索无限可能,共创索无限可能,共创辉煌明天。

期待您的回复!

**东方海外信息技术开发中心 招聘团队**
联系方式:[添加您的联系方式]
官网:[添加公司官网链接]

在此感谢您对东方海外的关注与期待!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐