通过langchain实现简单对话

通过 .env 文件来加载环境变量

  • 在项目文件中创建一个 .env 文件来存放一下环境配置信息如各种API
  • 使用函数加载进来 (可以防止暴露 API
    • 导包:from dotenv import load_dotenv
    • 导入环境变量:load_dotenv(".env")

建立一个简单ai对话

import os
from dotenv import load_dotenv

load_dotenv(".env")
# 设置环境变量,启用LangSmith的追踪功能
os.environ["LANGCHAIN_TRACING_V2"]="true"

# 可以通过以下方式验证是否成功加载
print("LangSmith API Key 已加载" if os.getenv("LANGSMITH_API_KEY") else "未找到 LangSmith API Key")
print("ZhipuAI API Key 已加载" if os.getenv("ZHIPUAI_API_KEY") else "未找到 ZhipuAI API Key")
LangSmith API Key 已加载
ZhipuAI API Key 已加载
调试信息:
LANGSMITH_API_KEY:************************************************************
ZHIPUAI_API_KEY: *********************************************************
# 使用智谱AI的GLM-4-Flash模型
from langchain_community.chat_models import ChatZhipuAI
  
chat_model=ChatZhipuAI(model="glm-4-flash")
# 创建一个简单的对话
from langchain_core.messages import HumanMessage,SystemMessage,AIMessage

messages=[
    SystemMessage(content="你是一个专业的翻译,你的任务是把中文翻译成意大利语"),
    HumanMessage(content="你好,吃了吗?")
]
  
# 调用模型
response=chat_model.invoke(messages)
print(response.content)
Ciao, hai mangiato?

提示模板

from langchain_core.prompts import ChatPromptTemplate

system_template="你是一个专业的翻译,你的任务是把中文翻译成{language}"
human_template="{text}"

# 使用提示模板创建一个对话
prompt_template=ChatPromptTemplate.from_messages(
    [
        ("system",system_template),
        ("human",human_template)
    ]
    )

# 使用提示模板创建一个对话
result=prompt_template.invoke({"language":"英语","text":"你好,吃了吗?"})

# 查看模板的完整信息
print(result)
print(result.to_messages())
messages=[SystemMessage(content='你是一个专业的翻译,你的任务是把中文翻译成英语', additional_kwargs={}, response_metadata={}), HumanMessage(content='你好,吃了吗?', additional_kwargs={}, response_metadata={})]

[SystemMessage(content='你是一个专业的翻译,你的任务是把中文翻译成英语', additional_kwargs={}, response_metadata={}), HumanMessage(content='你好,吃了吗?', additional_kwargs={}, response_metadata={})]
#调用链方法一
response=chat_model.invoke(result)
print(response.content)

# 调用链方法二
# 使用LCEL将组件链接在一起
chain=prompt_template|chat_model

response=chain.invoke({"language":"英语","text":"你好,吃了吗?"})
print(response.content)
Hello, have you eaten?
Hello, have you eaten yet?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值