快速上手

1、通过LangChain接入LLM
调用LLM流程:接入并定义大模型–》定义消息–>调用大模型–》输出结果

安装

1
pip install 

定义大模型

1
2
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-5-mini")

定义消息列表

1
2
3
4
5
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="Translate the following from English into Chinese"),
HumanMessage(content="hi!"),
]

参数说明:

  • SystemMessage:表示系统角色消息,系统消息通常作为输入消息序列中的第一条传入,是用来启动AI行为的消息
  • HumanMessage:表示用户角色消息,是来自用户的、从用户传递到模型的消息

调用大模型

model是langchain Runnable(可运行)接口的实例,这意味着model提供了一个标准接口供我们与之交互。要简单地调用模型,我们可以将消息列表传递给.invoke方法。

1
2
result=model.invoke(messages)
print(result)

输出结果

1
2
3
4
5
6
7
8
9
10
content='你好!' additional_kwargs={'refusal': None} response_metadata=
{'token_usage': {'completion_tokens': 2, 'prompt_tokens': 20, 'total_tokens':
22, 'completion_tokens_details': {'accepted_prediction_tokens': 0,
'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0},
'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}},
'model_name': 'gpt-5-mini-2024-07-18', 'system_fingerprint': 'fp_560af6e559',
'id': 'chatcmpl-C5l29mi6KkQSFO3qaElDJD5Lj9nBn', 'service_tier': 'default',
'finish_reason': 'stop', 'logprobs': None} id='run--777ef0be-55c2-411a-a4ab-
104a45c22f20-0' usage_metadata={'input_tokens': 20, 'output_tokens': 2,total_tokens': 22, 'input_token_details': {'audio': 0, 'cache_read': 0},
'output_token_details': {'audio': 0, 'reasoning': 0}}

输出说明:

  • AIMessage :来⾃ AI 的消息。从聊天模型返回,作为对提⽰(输⼊)的响应。
    • content :消息的内容。

    • additional_kwargs :与消息关联的其他有效负载数据。对于来⾃ AI 的消息,可能包括模型提供程序编码的⼯具调⽤。

    • response_metadata :响应元数据。例如:响应标头、logprobs、令牌计数、模型名称。
      ▪侧重于 “响应”本⾝的信息,⽐如这次请求的 ID、使⽤的模型版本、以及服务提供商返回的所有原始元数据。它主要⽤于调试、⽇志记录和获取请求的上下⽂信息。

    • usage_metadata :消息的使⽤元数据,例如令牌计数。
      ▪侧重于 “资源消耗”的量化信息,即这次请求消耗了多少 Token。它主要⽤于成本计算、监控和预算控制

输出解析

如果只想输出聊天模型返回的结果字符串,可以使用 StrOutputParser输出解释器组件,将大模型输出结果解析为最可能的字符串。核心代码:

1
2
3
4
# 定义str字符串输出解析器
from langchain_core.output_parsers import StrOutputParser
parser = StrOutputParser()
print(parser.invoke(result))

结果

1
你好

链式执行

每次调用一个invoke()方法,得到我们想要的结果。
对于LangChain,他给我们提供了链式执行的能力,即我们只需要定义各个"组件",将他们"链起来",一次性执行即可得到最终结果。

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from langchain_core.messages import HumanMessage, SystemMessage  
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI

# 1、定义模型 默认从系统环境变量中获取api-key
model=ChatOpenAI(model="gpt-4o-mini")

messages=[
SystemMessage(content="请帮我进行翻译,由英文翻译成中文!"),
HumanMessage(content="my name is yuehan")
]
# 调用大模型
#result=model.invoke(messages)
#print(result)

# 链式存储体现

#定义输出解释器组件
parser=StrOutputParser()
#print(parser.invoke(result))

# 5、定义链 执行链
chain=model|parser
print(chain.invoke(messages))