modelscope 社区调用 llm 的简单测试代码

调用一次

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()

posted @ 2026-07-31 19:58  立体风  阅读(16)  评论(0)    收藏  举报