解决VScode调用大模型,返回内容乱码问题
·
一只coding小白,好不容易按照教程安装好了langchain,申请了api_key在vscode中尝试调用了qwen3-max大模型,但是回答却出现了乱码问题:
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage,AIMessage,SystemMessage
# 1. 创建模型实例对象,qwen3-max为聊天模型
model = ChatTongyi(model="qwen3-max", api_key="sk-SSSSSSSSSSSSSSSSkkkkkKKKKKKKKKKK")
# 2. 构造对话消息列表
messages = [
SystemMessage(content="你是我的人工智能助手,协助我解答问题。请用中文回答。回答简洁明了。"),
HumanMessage(content="你是谁?你可以做什么?")
]
# 3. 调用模型进行对话
response = model.stream(input=messages)
# 4. 输出模型回复,通过.content获取文本内容,end=""和flush=True参数实现流式输出
for chunk in response:
print(chunk.content, end="", flush=True)
但是输出却是这样的:
[Running] python -u "e:\AI-study\RAG-langchain.py"
�������AI���֣����ش����⡢�ṩ��Ϣ��Э��ѧϰ��д��������ȡ���ʲô�ҿ����������
[Done] exited with code=0 in 3.262 seconds
根本原因是编码不匹配——程序使用 UTF-8 编码输出中文,但终端/控制台使用其他编码(如 GBK)来解码,导致"鸡同鸭讲"。
解决方案就是在最顶上加入三行代码:
import sys
import io
# 设置标准输出编码为 UTF-8,解决输出位乱码的问题。
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage,AIMessage,SystemMessage
# 1. 创建模型实例对象,qwen3-max为聊天模型
model = ChatTongyi(model="qwen3-max", api_key="sk-SSSSSSSSSSSSSSSSkkkkkKKKKKKKKKKK")
# 2. 构造对话消息列表
messages = [
SystemMessage(content="你是我的人工智能助手,协助我解答问题。请用中文回答。回答简洁明了"),
HumanMessage(content="你是谁?你可以做什么?")
]
# 3. 调用模型进行对话
response = model.stream(input=messages)
# 4. 输出模型回复,通过.content获取文本内容,end=""和flush=True参数实现流式输出
for chunk in response:
print(chunk.content, end="", flush=True)
运行发现完美解决~
[Running] python -u "e:\AI-study\RAG-langchain.py"
我是你的人工智能助手,能帮你解答问题、提供信息、协助学习、写作、翻译、编程等。有什么我可以帮你的吗?
[Done] exited with code=0 in 4.199 seconds
希望可以帮助到你~
更多推荐
所有评论(0)