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",
"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 game",
"prompt": "Code a basic snake game in python, give explanations for each step."
}, {
"title": "Recipe help",
"prompt": "How do I make a delicious lemon cheesecake?"
}
]
}
]`
你可以更改引數,或者自定義前置提示(preprompt)以更好地滿足你的需求。你還可以透過向陣列中新增更多物件來增加更多模型,例如使用不同的前置提示。
聊天提示模板
在查詢模型以獲取聊天響應時,會使用 chatPromptTemplate
模板。messages
是一個聊天訊息陣列,其格式為 [{ content: string }, ...]
。為了識別訊息是使用者訊息還是助手訊息,可以使用 ifUser
和 ifAssistant
塊級幫助程式。
以下是預設的 chatPromptTemplate
,為了便於閱讀,已添加了換行和縮排。你可以在這裡找到 HuggingChat 生產環境中使用的提示。使用的模板語言是 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": [
...
]
}
]`