导读
环境:OpenEuler、Windows 11、WSL 2、Python 3.12.3 langchain 0.3.15
背景:前期忙碌的开发阶段结束,需要沉淀自己的应用知识,过一遍LangChain
时间:20250124
说明:使用langchain,实现基本的翻译应用,分别为:普通模式、流式输出、多语言模式
官方文档:简单LLM应用
1、安装模块
python
pip install langchain langchain_openai
当前这个时间会自动安装共计44个packages,真多
2、模型的apikey
推荐免费的阿里云百炼:阿里云百炼 - 通义千问 - QwQ-32B-Preview
具体模型自己选择,如果不知道如何选择,可使用我给的链接,注册即有免费的额度
请注意红框内的信息,此处说明可以免费使用,可按照图示获取apikey
接口调用方法文档,如下:
阿里云百炼 - 通义千问 - QwQ-32B-Preview-OpenAI接口
3、创建应用
该应用实现翻译的功能,自英文翻译为中文(官方案例为英文到意大利文)
python
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
client = ChatOpenAI(
# 根据自己的需求配置,可以是环境变量,也可以是文本内容
api_key="sk-005dc4fxxxxxxxxxxxxxxxxxxxxxxx5415ca",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
model="qwen-plus"
)
messages = [
# 系统提示词:将英文翻译为中文
SystemMessage("Translate the following from English into chinese"),
HumanMessage("hi!"),
]
aimessages = client.invoke(messages)
print(aimessages.content)
结果如下:
python
(venv) [jack@Laptop-L14-gen4 langtest]$ /home/jack/langtest/venv/bin/python /home/jack/langtest/chain_test/simple_LLM_application.py
你好!
4、流式输出
现在主流都是(异步)流式输出,langchain也支持该功能
python
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
client = ChatOpenAI(
# 根据自己的需求配置,可以是环境变量,也可以是文本内容
api_key="sk-005dc4fxxxxxxxxxxxxxxxxxxxxxxx5415ca",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
model="qwen-plus"
)
messages = [
# 系统提示词:将英文翻译为中文
SystemMessage("Translate the following from English into chinese"),
HumanMessage("Translate the following from English into chinese!"),
]
for token in client.stream(messages):
print(token.content, end="|")
解决如下:
python
[jack@Laptop-L14-gen4 langtest]$ /home/jack/langtest/venv/bin/python /home/jack/langtest/chain_test/simple_LLM_application.py
|请|将|以下|内容从英语翻译|成中文!||
5、灵活控制提示词
通过控制提示词,实现多语言额翻译功能
python
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
system_template = "Translate the following from English into {language}"
prompt_template = ChatPromptTemplate.from_messages(
[("system", system_template), ("user", "{text}")]
)
client = ChatOpenAI(
# 根据自己的需求配置,可以是环境变量,也可以是文本内容
api_key="sk-005dc4fxxxxxxxxxxxxxxxxxxxxxxx5415ca",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
model="qwen-plus"
)
prompt = prompt_template.invoke({"language": "Chinese", "text": "Finally, we can invoke the chat model on the formatted prompt!"})
prompt.to_messages()
response = client.invoke(prompt)
print(response.content)
结果:
python
(venv) [jack@Laptop-L14-gen4 langtest]$ /home/jack/langtest/venv/bin/python /home/jack/langtest/chain_test/simple_LLM_application.py
最后,我们可以对格式化的提示调用聊天模型了!