Chat UI 文档
模型概览
并获取增强的文档体验
开始使用
模型概览
您可以通过更新 .env.local
文件中的 MODELS
变量来自定义传递给模型的参数,甚至使用新模型。默认配置可以在 .env
文件中找到,如下所示
MODELS=`[
{
"name": "mistralai/Mistral-7B-Instruct-v0.2",
"displayName": "mistralai/Mistral-7B-Instruct-v0.2",
"description": "Mistral 7B is a new Apache 2.0 model, released by Mistral AI that outperforms Llama2 13B in benchmarks.",
"websiteUrl": "https://mistral.ai/news/announcing-mistral-7b/",
"preprompt": "",
"chatPromptTemplate" : "<s>{{#each messages}}{{#ifUser}}[INST] {{#if @first}}{{#if @root.preprompt}}{{@root.preprompt}}\n{
{/if}
}{
{/if}
}{{content}} [/INST]{{/ifUser}}{{#ifAssistant}}{{content}}</s>{{/ifAssistant}}{{/each}}",
"parameters": {
"temperature": 0.3,
"top_p": 0.95,
"repetition_penalty": 1.2,
"top_k": 50,
"truncate": 3072,
"max_new_tokens": 1024,
"stop": ["</s>"]
},
"promptExamples": [
{
"title": "Write an email from bullet list",
"prompt": "As a restaurant owner, write a professional email to the supplier to get these products every week: \n\n- Wine (x10)\n- Eggs (x24)\n- Bread (x12)"
}, {
"title": "Code a snake game",
"prompt": "Code a basic snake game in python, give explanations for each step."
}, {
"title": "Assist in a task",
"prompt": "How do I make a delicious lemon cheesecake?"
}
]
}
]`
您可以更改参数等设置,或自定义预提示以更好地满足您的需求。您还可以通过向数组添加更多对象来添加更多模型,例如使用不同的预提示。
聊天提示模板
当查询模型以获取聊天回复时,将使用 chatPromptTemplate
模板。messages
是一个聊天消息数组,格式为 [{ content: string }, ...]
。要识别消息是用户消息还是助手消息,可以使用 ifUser
和 ifAssistant
块助手。
以下是默认的 chatPromptTemplate
,为了提高可读性,添加了换行符和缩进。您可以在此处找到 HuggingChat 生产环境中使用prompt。使用的模板语言是 Handlebars。
{{preprompt}}
{{#each messages}}
{
{#ifUser}
}{{@root.userMessageToken}}{{content}}{{@root.userMessageEndToken}}{{/ifUser}}
{
{#ifAssistant
}
}{{@root.assistantMessageToken}}{{content}}{{@root.assistantMessageEndToken}}{{/ifAssistant}}
{{/each}}
{{assistantMessageToken}}
自定义端点授权
Basic 和 Bearer 身份验证
自定义端点可能需要授权,具体取决于您的配置方式。身份验证通常使用 Basic
或 Bearer
设置。
对于 Basic
身份验证,我们需要生成用户名和密码的 base64 编码。
echo -n "USER:PASS" | base64
VVNFUjpQQVNT
对于 Bearer
身份验证,您可以使用令牌,可以从此处获取。
然后,您可以将生成的信息和 authorization
参数添加到您的 .env.local
文件中。
"endpoints": [
{
"url": "https://HOST:PORT",
"authorization": "Basic VVNFUjpQQVNT",
}
]
请注意,如果设置了 HF_TOKEN
或其不为空,它将优先使用。
托管在多个自定义端点上的模型
如果托管的模型将在多个服务器/实例上可用,请将 weight
参数添加到您的 .env.local
文件中。weight
将用于确定请求特定端点的概率。
"endpoints": [
{
"url": "https://HOST:PORT",
"weight": 1
},
{
"url": "https://HOST:PORT",
"weight": 2
}
...
]
客户端证书认证 (mTLS)
自定义端点可能需要客户端证书认证,具体取决于您的配置方式。要在 Chat UI 和您的自定义端点之间启用 mTLS,您需要将 USE_CLIENT_CERTIFICATE
设置为 true
,并将 CERT_PATH
和 KEY_PATH
参数添加到您的 .env.local
文件中。这些参数应指向本地计算机上证书和密钥文件的位置。证书和密钥文件应为 PEM 格式。密钥文件可以使用密码进行加密,在这种情况下,您还需要将 CLIENT_KEY_PASSWORD
参数添加到您的 .env.local
文件中。
如果您使用的是由私有 CA 签名的证书,您还需要将 CA_PATH
参数添加到您的 .env.local
文件中。此参数应指向本地计算机上 CA 证书文件的位置。
如果您使用的是自签名证书,例如用于测试或开发目的,您可以将 .env.local
文件中的 REJECT_UNAUTHORIZED
参数设置为 false
。这将禁用证书验证,并允许 Chat UI 连接到您的自定义端点。
特定嵌入模型
模型可以使用在 TEXT_EMBEDDING_MODELS
下定义的任何嵌入模型(当前在网页搜索中使用)。默认情况下,它将使用第一个嵌入模型,但可以通过 embeddingModel
字段进行更改
TEXT_EMBEDDING_MODELS = `[
{
"name": "Xenova/gte-small",
"chunkCharLength": 512,
"endpoints": [
{"type": "transformersjs"}
]
},
{
"name": "intfloat/e5-base-v2",
"chunkCharLength": 768,
"endpoints": [
{"type": "tei", "url": "http://127.0.0.1:8080/", "authorization": "Basic VVNFUjpQQVNT"},
{"type": "tei", "url": "http://127.0.0.1:8081/"}
]
}
]`
MODELS=`[
{
"name": "Ollama Mistral",
"chatPromptTemplate": "...",
"embeddingModel": "intfloat/e5-base-v2"
"parameters": {
...
},
"endpoints": [
...
]
}
]`