快速上手
1、通过LangChain接入LLM
调用LLM流程:接入并定义大模型–》定义消息–>调用大模型–》输出结果
安装
定义大模型
1 2 from langchain_openai import ChatOpenAI model = ChatOpenAI(model= "gpt-5-mini" )
定义消息列表
1 2 3 4 5 from langchain_core.messages import HumanMessage, SystemMessagemessages = [ 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 from langchain_core.output_parsers import StrOutputParserparser = StrOutputParser() print (parser.invoke(result))
结果
链式执行
每次调用一个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))