langchain 入门(一)

导读

环境: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
最后,我们可以对格式化的提示调用聊天模型了!
相关推荐
努力的小郑8 小时前
数据查到了,回答去哪儿了?一次百炼 + LangChain 排查实录
后端·langchain·agent
承渊政道1 天前
LangChainAI应用开发框架【LangChain与LangGraph介绍】
langchain·大模型·langgraph·ai应用开发
Flynn Liang1 天前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang1 天前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j
GISer_Jing1 天前
Agent相关岗位时收集的各类技术面试题
后端·ai·langchain
Flynn Liang2 天前
LangChain4j 生产级工程骨架:12 个模块 + Docker 一键启动
java·spring boot·langchain·rag·langchain4j
叼烟扛炮2 天前
[LangChain] 学习笔记(08):工具调用底层闭环与第三方搜索(Tavily)实战
人工智能·笔记·学习·langchain
GISer_Jing2 天前
AI Agent秋招面试万字通关指南|架构、ReAct、上下文工程、RAG、评测、生产运维全解
后端·ai·langchain
西安小哥2 天前
大厂把大模型做为一层“网关”,比换个框架更值得琢磨
架构·langchain
叼烟扛炮2 天前
[LangChain] 学习笔记(07):大模型长出手脚——工具(Tools)定义与调用闭环
笔记·学习·langchain