chatchat-space / Langchain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain
Apache License 2.0
32.09k stars 5.58k forks source link

调用百度千帆大模型平台,没有返回结果 #3122

Closed WSDzju closed 6 months ago

WSDzju commented 8 months ago

问题描述 / Problem Description 用简洁明了的语言描述这个问题 / Describe the problem in a clear and concise manner. image 配置文件如下:

屏幕截图 2024-03-01 053134

看了 model_worker 文档 这里的 url或者version配置一个即可。 另外,这里是不是只要url填写正确,只要是千帆平台上的大模型都能调用?

dosubot[bot] commented 8 months ago

🤖

嘿,@WSDzju!很高兴再次见到你在这里提问 😜

根据您的问题,我理解您想要知道在正确填写URL的情况下,是否可以调用千帆平台上的任何大模型,而不考虑版本配置。在Langchain-Chatchat的实现中,不是所有的大模型都可以被调用。能否调用一个模型取决于代码中定义的MODEL_VERSIONS字典,该字典将模型名称映射到它们各自的版本配置。如果一个模型的版本没有在MODEL_VERSIONS字典中列出,那么它就不能使用这个实现来调用。您可以在这里查看相关的源代码。

关于MODEL_VERSIONS字典的结构和内容,您可以参考以下代码片段:

MODEL_VERSIONS = {
    "ernie-bot-4": "completions_pro",
    "ernie-bot": "completions",
    "ernie-bot-turbo": "eb-instant",
    "bloomz-7b": "bloomz_7b1",
    "qianfan-bloomz-7b-c": "qianfan_bloomz_7b_compressed",
    "llama2-7b-chat": "llama_2_7b",
    "llama2-13b-chat": "llama_2_13b",
    "llama2-70b-chat": "llama_2_70b",
    "qianfan-llama2-ch-7b": "qianfan_chinese_llama_2_7b",
    "chatglm2-6b-32k": "chatglm2_6b_32k",
    "aquilachat-7b": "aquilachat_7b",
    # "linly-llama2-ch-7b": "", # 暂未发布
    # "linly-llama2-ch-13b": "", # 暂未发布
    # "chatglm2-6b": "", # 暂未发布
    # "chatglm2-6b-int4": "", # 暂未发布
    # "falcon-7b": "", # 暂未发布
    # "falcon-180b-chat": "", # 暂未发布
    # "falcon-40b": "", # 暂未发布
    # "rwkv4-world": "", # 暂未发布
    # "rwkv5-world": "", # 暂未发布
    # "rwkv4-pile-14b": "", # 暂未发布
    # "rwkv4-raven-14b": "", # 暂未发布
    # "open-llama-7b": "", # 暂未发布
    # "dolly-12b": "", # 暂未发布
    # "mpt-7b-instruct": "", # 暂未发布
    # "mpt-30b-instruct": "", # 暂未发布
    # "OA-Pythia-12B-SFT-4": "", # 暂未发布
    # "xverse-13b": "", # 暂未发布

    # # 以下为企业测试,需要单独申请
    # "flan-ul2": "",
    # "Cerebras-GPT-6.7B": ""
    # "Pythia-6.9B": ""
}

这个字典将模型名称映射到它们各自的版本标识符或代码。有些条目被注释掉了,表示这些模型还没有发布。您可以在这里查看相关的源代码。

Langchain-Chatchat的代码库通过ApiModelParams类(继承自ApiConfigParams)使用URL和版本配置来调用千帆平台的模型。这个类包括versionversion_urlapi_version等可选字段,可以设置这些字段来配置模型版本和API调用的URL。配置参数通过get_model_worker_config基于worker_name加载,并可能被覆盖。这种机制允许动态配置API端点和模型版本,方便调用像千帆这样的平台上的不同模型。

ApiModelWorker类(继承自BaseModelWorker)在其操作中使用这些配置。例如,在通过generate_stream_gate方法生成响应时,它可以使用ApiChatParams实例(继承自ApiModelParams)的version字段来在API调用中指定模型版本。然而,在提供的代码片段中,API调用的实际实现(do_chatdo_completiondo_embeddings)是抽象的,表明使用api_base_urlversion和其他配置来向千帆平台或任何其他API发出请求的具体逻辑将在子类或代码库的其他地方实现。

总的来说,URL和版本的配置设计得很灵活,可以根据工作器名称动态加载,但是直接使用这些配置来调用千帆平台的模型的具体实现将在像do_chat这样的方法中实现,这些方法在提供的代码片段中没有详细说明。您可以在这里查看相关的源代码。

Sources

#### About Dosu This response is meant to be useful and save you time. It is **not meant to be a precise solution**, but rather a starting point for your own research. Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. If you want to continue the conversation, start your reply with @dosu-bot.
github-actions[bot] commented 7 months ago

这个问题已经被标记为 stale ,因为它已经超过 30 天没有任何活动。

shanfasheng commented 6 months ago

这个问题解决了吗?

shanfasheng commented 6 months ago

🤖

嘿,@WSDzju!很高兴再次见到你在这里提问 😜

根据您的问题,我理解您想要知道在正确填写URL的情况下,是否可以调用千帆平台上的任何大模型,而不考虑版本配置。在Langchain-Chatchat的实现中,不是所有的大模型都可以被调用。能否调用一个模型取决于代码中定义的MODEL_VERSIONS字典,该字典将模型名称映射到它们各自的版本配置。如果一个模型的版本没有在MODEL_VERSIONS字典中列出,那么它就不能使用这个实现来调用。您可以在这里查看相关的源代码。

关于MODEL_VERSIONS字典的结构和内容,您可以参考以下代码片段:

MODEL_VERSIONS = {
    "ernie-bot-4": "completions_pro",
    "ernie-bot": "completions",
    "ernie-bot-turbo": "eb-instant",
    "bloomz-7b": "bloomz_7b1",
    "qianfan-bloomz-7b-c": "qianfan_bloomz_7b_compressed",
    "llama2-7b-chat": "llama_2_7b",
    "llama2-13b-chat": "llama_2_13b",
    "llama2-70b-chat": "llama_2_70b",
    "qianfan-llama2-ch-7b": "qianfan_chinese_llama_2_7b",
    "chatglm2-6b-32k": "chatglm2_6b_32k",
    "aquilachat-7b": "aquilachat_7b",
    # "linly-llama2-ch-7b": "", # 暂未发布
    # "linly-llama2-ch-13b": "", # 暂未发布
    # "chatglm2-6b": "", # 暂未发布
    # "chatglm2-6b-int4": "", # 暂未发布
    # "falcon-7b": "", # 暂未发布
    # "falcon-180b-chat": "", # 暂未发布
    # "falcon-40b": "", # 暂未发布
    # "rwkv4-world": "", # 暂未发布
    # "rwkv5-world": "", # 暂未发布
    # "rwkv4-pile-14b": "", # 暂未发布
    # "rwkv4-raven-14b": "", # 暂未发布
    # "open-llama-7b": "", # 暂未发布
    # "dolly-12b": "", # 暂未发布
    # "mpt-7b-instruct": "", # 暂未发布
    # "mpt-30b-instruct": "", # 暂未发布
    # "OA-Pythia-12B-SFT-4": "", # 暂未发布
    # "xverse-13b": "", # 暂未发布

    # # 以下为企业测试,需要单独申请
    # "flan-ul2": "",
    # "Cerebras-GPT-6.7B": ""
    # "Pythia-6.9B": ""
}

这个字典将模型名称映射到它们各自的版本标识符或代码。有些条目被注释掉了,表示这些模型还没有发布。您可以在这里查看相关的源代码。

Langchain-Chatchat的代码库通过ApiModelParams类(继承自ApiConfigParams)使用URL和版本配置来调用千帆平台的模型。这个类包括versionversion_urlapi_version等可选字段,可以设置这些字段来配置模型版本和API调用的URL。配置参数通过get_model_worker_config基于worker_name加载,并可能被覆盖。这种机制允许动态配置API端点和模型版本,方便调用像千帆这样的平台上的不同模型。

ApiModelWorker类(继承自BaseModelWorker)在其操作中使用这些配置。例如,在通过generate_stream_gate方法生成响应时,它可以使用ApiChatParams实例(继承自ApiModelParams)的version字段来在API调用中指定模型版本。然而,在提供的代码片段中,API调用的实际实现(do_chatdo_completiondo_embeddings)是抽象的,表明使用api_base_urlversion和其他配置来向千帆平台或任何其他API发出请求的具体逻辑将在子类或代码库的其他地方实现。

总的来说,URL和版本的配置设计得很灵活,可以根据工作器名称动态加载,但是直接使用这些配置来调用千帆平台的模型的具体实现将在像do_chat这样的方法中实现,这些方法在提供的代码片段中没有详细说明。您可以在这里查看相关的源代码。

Sources

About Dosu

This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

这个看源码中的配置,都配了,还是报楼主截图的报错