调用一次
from openai import OpenAI
client = OpenAI(
api_key="ModelScope Access Token", # 请替换成您的ModelScope Access Token
base_url="https://api-inference.modelscope.cn/v1/"
)
m1=[
{"role": "system", "content": "你是一个精通佛教经文的大师。"},
{"role": "user", "content": "对《金刚经》的三句义,谈一谈你的看法?比如:佛说佛法,既非佛法,是名佛法。"},
]
response = client.chat.completions.create(
model="ZhipuAI/GLM-5.2", # ModelScope Model-Id
messages=m1,
stream=True
)
for chunk in response:
if chunk.choices and chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end='', flush=True)
调用多次
from openai import OpenAI
# 1. 初始化客户端
client = OpenAI(
api_key="modelscope token", # 请替换成您的实际 Token
base_url="https://api-inference.modelscope.cn/v1/"
)
# 2. 初始化对话列表(只放入系统提示词,确立人设)
messages = [
{"role": "system", "content": "你是一个精通佛教经文的大师。"}
]
print("🙏 佛学大师已就位。您可以开始提问了。(输入 'quit' 或 'exit' 退出对话)\n")
# 3. 开启连续对话的死循环
while True:
# 获取用户输入
user_input = input("👤 施主 (你): ")
# 退出机制
if user_input.lower() in ['quit', 'exit', '退出']:
print("🙏 大师: 善哉善哉,施主慢走。")
break
if not user_input.strip():
continue
# 步骤 A:把用户的新问题加入列表
messages.append({"role": "user", "content": user_input})
print("📿 大师: ", end="")
# 用于拼接大师本次的完整回答
full_assistant_reply = ""
try:
# 发起流式请求
response = client.chat.completions.create(
model="ZhipuAI/GLM-5.2", # ModelScope Model-Id
messages=messages,
stream=True
)
# 遍历数据块,打印并拼接
for chunk in response:
if chunk.choices and chunk.choices[0].delta.content is not None:
content = chunk.choices[0].delta.content
print(content, end='', flush=True)
full_assistant_reply += content # 核心:把碎片收集起来
print("\n" + "-"*50) # 打印分割线,美化排版
# 步骤 B:把大师的完整回答加入列表,让模型拥有“记忆”
messages.append({"role": "assistant", "content": full_assistant_reply})
except Exception as e:
print(f"\n[业障(报错)]: {e}")
# 如果报错了,最好把刚才加进去的用户问题弹出来,以免破坏对话结构
messages.pop()