使用langchain调用LLM
安装对应的依赖
langchain-openai、langchain-deepseek二选一即可,取决于你需要调用的模型是什么- 如果使用
deepseek等langchain支持的模型,安装对应的依赖包即可langchain-xxx - 如果是
langchain不支持的模型,可以伪装成openai下载langchain-openai包即可
plaintext
uv add langchain langchain-openai langchain-deepseek
使用langchain支持的模型
python
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
# 加载环境变量
load_dotenv()
model = init_chat_model(model="deepseek-chat")
使用langchain不支持的模型,比如阿里云百炼
python
"""
创建langchain模型实例
安装对应的依赖
uv add langchain langchain-openai
"""
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
# 加载环境变量
load_dotenv()
"""
一般来说只需要 model 就可以创建一个模型实例
但是有时候遇到langchain不支持的模型 需要指定其他参数,比如 api_key, base_url, model_provider=openai 等
"""
model = init_chat_model(
model="qwen3-max", # 不支持 阿里云百炼 所以才伪装成openai模型 如果支持的模型 直接指定 model 就可以
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
model_provider='openai'
)
调用模型一般有两种方式 invoke 和 stream
invoke和stream两个方法的参数 可以是字符串 也可以是列表- 如果参数是字符串 则会被直接发送给模型
- 如果参数是列表 则会被转换为json字符串 发送给给模型
python
[
{"role": "system", "content": "你是一个ai助手,不说废话,回答用户的问题,保持回答的简洁"},
{"role": "user", "content": "你好, 请介绍一下你自己"},
{"role": "assistant", "content": "你好是一个ai助手,我会回答用户的问题"},
]
使用invoke调用模型,可以直接输出模型的结果
python
""" 直接输出结果 """
result =model.invoke("你好, 请介绍一下你自己")
print(result.content)
使用stream调用模型,可以像打字机一样的效果输出模型的结果
python
""" 流式输出结果 """
response= model.stream("你好, 请介绍一下你自己")
for chunk in response:
print(chunk.content, end="", flush=True)
最终模型会输出结果。