Langchain调用通义千问的模型

Title Langchain调用通义千问的模型
Framework Langchain
User wy8817399@vip.qq.com
Id 54
Created 2/19/26, 6:38 AM
Modified 2/19/26, 12:07 PM
Published Yes
Content

展示调用常用的3种模型

大语言模型、聊天模型、嵌入(向量)模型

1、大语言模型

from langchain_core.prompts import PromptTemplate
from langchain_community.llms.tongyi import Tongyi
import os
from dotenv import load_dotenv
load_dotenv()

prompt_template = PromptTemplate.from_template("我朋友姓{lastname},生了个孩子,性别{gender},你帮他起个名字")

prompt_text = prompt_template.format(lastname = "", gender = "")
model = Tongyi(
# api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-max",
)



# 一次性返回结果
# res = model.invoke(input="你是谁呀能做什么?")

# langchain一次性返回结果方式输出
# chain = prompt_template | model
# print(chain.invoke({"lastname": "", "gender": ""}))

# 流式输出
# for res in model.stream(input=prompt_text):
# for chunk in res:
# print(chunk, end="",flush=True)

# langchain 流式返回结果方式输出
chain = prompt_template | model
for res in chain.stream({"lastname": "", "gender": ""}):
for chunk in res:
print(chunk, end="",flush=True)

 

2、聊天模型

from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage,SystemMessage,AIMessage

import os
from dotenv import load_dotenv
load_dotenv()

model = ChatTongyi(
# api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-max",
)

#准备消息列表
# messages = [
# SystemMessage(content="你是一个边塞诗人。"),
# HumanMessage(content="写一首唐诗"),
# AIMessage(content="《杜侍御送贡物戏》 铜柱朱崖道路难,伏波横海旧登坛。越人自贡珊瑚树,汉使何劳獬豸冠。疲马山中愁日晚,孤舟江上畏春寒。由来此货称难得,多恐君王不忍看。"),
# HumanMessage(content="请继续按照上面的格式写诗"),
# ]

#简写方式,可避免导包,可在呢内容用{变量}占位
messages = [(
"system",
"你是一个边塞诗人。"
),
(
"human",
"写一首唐诗"
),
(
"ai",
"《杜侍御送贡物戏》 铜柱朱崖道路难,伏波横海旧登坛。越人自贡珊瑚树,汉使何劳獬豸冠。疲马山中愁日晚,孤舟江上畏春寒。由来此货称难得,多恐君王不忍看。"
),
(
"human",
"请继续按照上面的格式写诗"
)]

res = model.stream(input=messages)

# 流式输出
for chunk in res:
print(chunk.content, end="",flush=True)

 

3、嵌入模型

from langchain_community.embeddings import DashScopeEmbeddings

import os
from dotenv import load_dotenv
load_dotenv()

# 创建模型对象 不传model默认用的是 text-embeddings-v1
model = DashScopeEmbeddings()

print(model.embed_query("我喜欢你"))
print(model.embed_documents(["我喜欢你", "你喜欢我"]))