🔥🔥🔥一文搞懂 Langchain Models (三)

接上文《🔥🔥🔥一文搞懂 Langchain Models (二)》

Chat Models

聊天模型使用LLM(大型语言模型)进行操作,但具有不同的接口,使用"消息"而不是原始文本输入/输出。LangChain 提供了与这些模型轻松交互的功能。

在聊天模型中,支持三种类型的消息:

  • SystemMessage(系统消息) - 这设置了LLM的行为和目标。您可以在这里给出具体的指示,如:"扮演市场经理。" 或 "只返回JSON响应,不返回说明文本"
  • HumanMessage(人类消息) - 这是您将用户提示输入并发送给LLM的地方
  • AIMessage(AI消息) - 当将聊天记录传回LLM以供将来请求时,您可以在这里存储来自LLM的响应。

还有一个通用的 ChatMessage,它接受一个任意的"角色"输入,可以在需要除系统/人类/AI之外的其他内容的情况下使用。但通常情况下,您会使用上面提到的三种类型。

要使用它,您需要导入所使用集成的聊天模型。

python 复制代码
from langchain.chat_models import ChatOpenAI
from langchain.schema import (
    AIMessage,
    HumanMessage,
    SystemMessage
)

然后,您需要初始化聊天代理。这个示例使用了 OpenAI 的聊天模型。

python 复制代码
chat = ChatOpenAI(temperature=0)

与LLM模型一样,这也有多个可以调整的设置,例如:

  • model(模型) - 默认为 "gpt-3.5-turbo"
  • temperature(温度) - 参见上面的解释
  • max_tokens(最大令牌数) - 设置LLM在响应中生成的令牌数量的限制 然后,您需要将一系列消息传递给聊天代理以生成响应。在关于LangChain的"Memory"(记忆)的未来文章中,我们将讨论用于存储和应用聊天记录的ChatMessageHistory类,它可以使代理记住聊天的上下文并在未来的响应中使用它,从而产生"对话"的好处。
python 复制代码
messages = [
	SystemMessage(content="Return only a JSON object as a response with no explanation text"),
	HumanMessage(content="Generate a JSON response object containing a brief description and release year for the movie 'Inception'")
]

chat(messages)

# AIMessage(content='{\\n  "title": "Inception",\\n  "description": "A skilled thief is given a final chance at redemption which involves executing his toughest job yet: Inception. The idea of planting an idea into someone\\'s mind is deemed impossible by most, but Cobb and his team of specialists must accomplish this task to save their lives.",\\n  "release_year": 2010\\n}', additional_kwargs={})

聊天模型(Chat Model)和LLM模型一样,也有一个生成函数,您可以在其中传入多个消息集合。与前述类似,它还包括有用的信息,如令牌使用情况。

python 复制代码
batch_messages = [
    [
        SystemMessage(content="Return only a JSON object as a response with no explanation text"),
        HumanMessage(content="Generate a JSON response object containing a brief description and release year for the movie 'Inception'")
    ],
    [
        SystemMessage(content="Return only a JSON object as a response with no explanation text"),
        HumanMessage(content="Generate a JSON response object containing a brief description and release year for the movie 'Avatar'")
    ]
]
result = chat.generate(batch_messages)

print(result.generations[1])
# ChatGeneration(text='{\\n  "title": "Avatar",\\n  "description": "A paraplegic marine dispatched to the moon Pandora on a unique mission becomes torn between following his orders and protecting the world he feels is his home.",\\n  "release_year": 2009\\n}', generation_info=None, message=AIMessage(content='{\\n  "title": "Avatar",\\n  "description": "A paraplegic marine dispatched to the moon Pandora on a unique mission becomes torn between following his orders and protecting the world he feels is his home.",\\n  "release_year": 2009\\n}', additional_kwargs={}))

print(result.llm_outout)
# {'token_usage': {'prompt_tokens': 91, 'completion_tokens': 151, 'total_tokens': 242}, 'model_name': 'gpt-3.5-turbo'}
相关推荐
迈火32 分钟前
SD - Latent - Interposer:解锁Stable Diffusion潜在空间的创意工具
人工智能·gpt·计算机视觉·stable diffusion·aigc·语音识别·midjourney
AITOP1007 小时前
通义发布Qwen3-Coder-Next:面向自主Coding Agents的开源权重模型
aigc·ai资讯·aitop100工具
空中楼阁,梦幻泡影11 小时前
主流4 大模型(GPT、LLaMA、DeepSeek、QWE)的训练与推理算力估算实例详细数据
人工智能·gpt·llama
GISer_Jing12 小时前
构建高性能Markdown引擎开发计划
前端·aigc·ai编程
多恩Stone13 小时前
【3DV 进阶-11】Trellis.2 数据处理与训练流程图
人工智能·pytorch·python·算法·3d·aigc·流程图
寻道码路13 小时前
【MCP探索实践】Google GenAI Toolbox:Google开源的企业级AI数据库中间件、5分钟搞定LLM-SQL安全互联
数据库·人工智能·sql·开源·aigc
gr178513 小时前
通过dify文件上传能力,解决较大文本与LLM实时交互问题
python·llm·aigc·dify
fanstuck14 小时前
从 0 到 1 构建企业智能体平台:openJiuwen 架构解析与智能客服工作流实战
大数据·人工智能·算法·架构·aigc
阿杰学AI15 小时前
AI核心知识83——大语言模型之 AI伦理审查员(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·安全性测试·ai伦理审查员
小程故事多_8016 小时前
平台工程工具,解锁研发效能的核心密码
人工智能·aigc