ModelScopeChatEndpoint
ModelScope (主页 | GitHub) 是基于“模型即服务(Model-as-a-Service,MaaS)”理念构建的。它旨在汇集 AI 社区中最先进的机器学习模型,并简化在实际应用中利用 AI 模型的过程。本仓库中开源的核心 ModelScope 库提供了允许开发者执行模型推理、训练和评估的接口和实现。
这将帮助您开始使用 ModelScope 对话端点。
概述
集成详情
| 提供商 | 类别 | 包 | 本地 | 可序列化 | 包下载量 | 最新包版本 | 
|---|---|---|---|---|---|---|
| ModelScope | ModelScopeChatEndpoint | langchain-modelscope-integration | ❌ | ❌ | 
设置
要访问 ModelScope 对话端点,您需要创建一个 ModelScope 账户,获取 SDK 令牌,并安装 langchain-modelscope-integration 集成包。
凭证
前往 ModelScope 注册账户并生成一个 SDK 令牌。完成此操作后,请设置 MODELSCOPE_SDK_TOKEN 环境变量
import getpass
import os
if not os.getenv("MODELSCOPE_SDK_TOKEN"):
    os.environ["MODELSCOPE_SDK_TOKEN"] = getpass.getpass(
        "Enter your ModelScope SDK token: "
    )
安装
LangChain ModelScope 集成位于 langchain-modelscope-integration 包中
%pip install -qU langchain-modelscope-integration
实例化
现在我们可以实例化模型对象并生成聊天补全
from langchain_modelscope import ModelScopeChatEndpoint
llm = ModelScopeChatEndpoint(
    model="Qwen/Qwen2.5-Coder-32B-Instruct",
    temperature=0,
    max_tokens=1024,
    timeout=60,
    max_retries=2,
    # other params...
)
调用
messages = [
    (
        "system",
        "You are a helpful assistant that translates English to Chinese. Translate the user sentence.",
    ),
    ("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg
AIMessage(content='我喜欢编程。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 3, 'prompt_tokens': 33, 'total_tokens': 36, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'qwen2.5-coder-32b-instruct', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run-60bb3461-60ae-4c0b-8997-ab55ef77fcd6-0', usage_metadata={'input_tokens': 33, 'output_tokens': 3, 'total_tokens': 36, 'input_token_details': {}, 'output_token_details': {}})
print(ai_msg.content)
我喜欢编程。
链式调用
我们可以像这样将模型与提示模板链式连接起来
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate(
    [
        (
            "system",
            "You are a helpful assistant that translates {input_language} to {output_language}.",
        ),
        ("human", "{input}"),
    ]
)
chain = prompt | llm
chain.invoke(
    {
        "input_language": "English",
        "output_language": "Chinese",
        "input": "I love programming.",
    }
)
API 参考:ChatPromptTemplate
AIMessage(content='我喜欢编程。', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 3, 'prompt_tokens': 28, 'total_tokens': 31, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'qwen2.5-coder-32b-instruct', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run-9f011a3a-9a11-4759-8d16-5b1843a78862-0', usage_metadata={'input_tokens': 28, 'output_tokens': 3, 'total_tokens': 31, 'input_token_details': {}, 'output_token_details': {}})
API 参考
有关 ModelScopeChatEndpoint 所有特性和配置的详细文档,请查阅参考资料:https://modelscope.cn/docs/model-service/API-Inference/intro