9.7 KiB
provider.json Configuration
:::info Table of Contents toc :::
The data/config/provider.json file contains configuration items related to AI interface providers.
Enable Chat Function (enable-chat)
"enable-chat": true,
enable-chat: Whether to enable the AI chat function.
Enable AI Vision Function (enable-vision)
"enable-vision": true,
enable-vision: Whether to enable the AI vision function. The model used must also support the vision function. For details, refer to the metadata section.
Model API Keys (keys)
::: info
Different model providers may use different API formats. LangBot determines the usage of each model through a triplet (requester, key group, model name). To view supported models or add custom models, refer to the metadata configuration section in the llm-models.json file.
:::
"keys": {
"openai": [
"sk-1234567890"
],
"anthropic": [
"sk-1234567890"
],
"moonshot": [
"sk-1234567890"
],
"deepseek": [
"sk-1234567890"
],
"gitee-ai": [
"XXXXX"
]
},
keys: Configure key groups in dictionary format, where each key group's name is the key and the value is a list of keys. For the correspondence between models and key groups, refer to the metadata section in the llm-models.json file.
Currently supported key groups:
openai: Key group for OpenAI. If you don't have an OpenAI API Key, you can get one here.anthropic: Key group for Anthropic.moonshot: Key group for Moonshot (Moonshot AI).deepseek: Key group for Deepseek (Deepseek AI).gitee-ai: Key group for Gitee AI Serverless API.
Large Model Requester (requester)
"requester": {
"openai-chat-completions": {
"base-url": "https://api.openai.com/v1",
"args": {},
"timeout": 120
},
"anthropic-messages": {
"base-url": "https://api.anthropic.com",
"args": {
"max_tokens": 1024
},
"timeout": 120
},
"moonshot-chat-completions": {
"base-url": "https://api.moonshot.cn/v1",
"args": {},
"timeout": 120
},
"deepseek-chat-completions": {
"base-url": "https://api.deepseek.com",
"args": {},
"timeout": 120
},
"ollama-chat": {
"base-url": "http://127.0.0.1:11434",
"args": {},
"timeout": 600
},
"gitee-ai-chat-completions": {
"base-url": "https://ai.gitee.com/v1",
"args": {},
"timeout": 120
}
},
requester: Configure requesters, where each requester's name is the key and the value is the requester configuration. For the correspondence between models and requesters, refer to the metadata section in the llm-models.json file. For implementing requesters, refer to the plugin development tutorial.
Currently supported requesters (unless a new requester is implemented via a plugin, new requester configurations cannot be added to requester):
openai-chat-completions: ChatCompletion requester for OpenAI.anthropic-messages: Requester for Anthropic (Claude).moonshot-chat-completions: Requester for Moonshot (Moonshot AI).deepseek-chat-completions: Requester for Deepseek (Deepseek AI).ollama-chat: Requester for Ollama, which does not require a key and directly requests the Ollama service at the target address.gitee-ai-chat-completions: Requester for Gitee AI Serverless API (OpenAI-compatible interface).
base-url: Set the API endpoint.
args: Additional parameters for the request, excluding the model, set in dictionary format. Refer to the documentation of each provider for details.
timeout: Set the request timeout in seconds. For models that take longer, it is recommended to set a larger value.
Model to Use (model)
"model": "gpt-3.5-turbo",
model: Set the name of the model to use. This model must exist in the llm-models.json metadata.
For the list of supported models and the corresponding requesters and key groups for each model, refer to the metadata section in the llm-models.json file.
Scenario Preset (Personality) (prompt)
"prompt-mode": "normal",
"prompt": {
"default": "If the user wants help later, please say 'Input !help to get help.'."
}
prompt-mode: Set the scenario preset mode, with values normal (single preset mode) and full-scenario (full historical conversation mode).
In normal mode, use the prompt below, which can have multiple entries.
"prompt": {
"default": "If the user wants help later, please say 'Input !help to get help.'.",
"help": "If the user wants help later, please say 'Input !help to get help.'."
}
The normal mode also supports reading the contents of files in the data/prompts directory as individual System Prompts, where the file name is the prompt name.
In use, set it as the default via the !default set <preset name> command (replace <preset name> entirely).
Full-Scenario Mode Configuration
Add complete historical conversations as files to the data/scenario/ directory, referencing data/scenario/default.json.
{
"prompt": [
{
"role": "system",
"content": "You are a helpful assistant. If I need help, you should say 'Input !help to get help.'"
},
{
"role": "assistant",
"content": "Okay, I am a capable AI assistant. If you need help, I will say 'Input !help to get help.'"
}
]
}
role is the role of the message, which can be user (user), assistant (AI), or system (system).
content is a string representing the message content.
In use, set it as the default via the !default set <file name> command (replace <preset name> entirely).
Request Runner (runner)
"runner": "local-agent",
Set which runner will handle the chat messages. The default is local-agent.
Currently supported:
local-agent: A local Agent mechanism implemented by LangBot, managing conversations and invoking plugins. Must be set tolocal-agentto usecontent functions.dify-service-api: Use the Service API mechanism of Dify, supporting chat assistants, Agents, and workflow applications.
Dify Service API Configuration (dify-service-api)
"dify-service-api": {
"base-url": "https://api.dify.ai/v1",
"app-type": "chat",
"chat": {
"api-key": "app-1234567890",
"timeout": 120
},
"agent": {
"api-key": "app-1234567890",
"timeout": 120
},
"workflow": {
"api-key": "app-1234567890",
"output-key": "summary",
"timeout": 120
}
}
Only when runner is set to dify-service-api, configure the following:
base-url: The address of the Dify Service API, default ishttps://api.dify.ai/v1, which is the address of the official Dify cloud service. If you are using a self-deployed community edition, set it to your self-deployed address.app-type: The type of Dify application to use. Supportschat- chat assistant (including advanced orchestration),agent- Agent,workflow- workflow; fill in the corresponding API parameters for the application type below.chat: Configuration for Dify chat assistant applications.api-key: API key for the Dify chat assistant application.timeout: Request timeout for the Dify chat assistant application, in seconds, default is 120 seconds.
agent: Configuration for Dify Agent applications.api-key: API key for the Dify Agent application.timeout: Request timeout for the Dify Agent application, in seconds, default is 120 seconds.
workflow: Configuration for Dify workflow applications.api-key: API key for the Dify workflow application.output-key: Output key for the Dify workflow application, used to retrieve the output results of the workflow application. Default issummary, corresponding to the output variable of the end node in the workflow orchestration.timeout: Request timeout for the Dify workflow application, in seconds, default is 120 seconds.
When using workflows, LangBot will explicitly pass the following parameters, which you can add to the start node of the Dify workflow:
langbot_user_message_text: Plain text of the user's message.langbot_session_id: User session ID,person_<id>for private chats,group_<id>for group chats.langbot_conversation_id: User conversation ID, generated by LangBot. It will be regenerated after the user resets the conversation.
When using workflow applications or Agent applications, if track-function-calls in platform.json is enabled, a message Calling function xxx will be output to the user when Dify executes each tool call.
However, if using ChatFlow under the chat application (chat assistant -> workflow orchestration), only the text returned by the Answer (direct reply) node will be output.

