/chats 路由通过将大型语言模型 (LLM) 与您的 Meilisearch 数据集成,实现 AI 驱动的对话式搜索。
这是一项实验性功能。请使用 Meilisearch Cloud UI 或实验性功能端点来激活它
curl \
  -X PATCH 'MEILISEARCH_URL/experimental-features/' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "chatCompletions": true
  }'

授权

在使用安全的 Meilisearch 实例时,请使用具有 searchchatCompletions 操作访问权限的 API 密钥,例如默认的聊天 API 密钥。 聊天查询只搜索其 API 密钥可以访问的索引。默认的聊天 API 密钥可以访问所有索引。要限制聊天访问特定索引,您必须创建一个新密钥,或者从默认的聊天 API 密钥生成租户令牌

聊天工作区对象

{
  "uid": "WORKSPACE_NAME"
}
名称类型描述
uid字符串聊天补全工作区的唯一标识符

列出聊天工作区

GET
/chats
列出所有聊天工作区。结果可以通过使用 offsetlimit 查询参数进行分页。

查询参数

查询参数描述默认值
offset要跳过的工作区数量0
limit要返回的工作区数量20

响应

名称类型描述
results数组工作区的数组
offset整数跳过的工作区数量
limit整数返回的工作区数量
总数整数工作区总数

示例

  curl \
    -X GET 'MEILISEARCH_URL/chats?limit=3'

响应:200 Ok

{
  "results": [
    { "uid": "WORKSPACE_1" },
    { "uid": "WORKSPACE_2" },
    { "uid": "WORKSPACE_3" }
  ],
  "offset": 0,
  "limit": 20,
  "total": 3
}

获取一个聊天工作区

GET
/chats/{workspace_uid}
获取关于工作区的信息。

路径参数

名称类型描述
workspace_uid *字符串请求索引的 uid

示例

  curl \
    -X GET 'MEILISEARCH_URL/chats/WORKSPACE_UID'

响应:200 Ok

{
  "uid": "WORKSPACE_UID"
}

聊天工作区设置

聊天工作区设置对象

{
  "source": "openAi",
  "orgId": null,
  "projectId": null,
  "apiVersion": null,
  "deploymentId": null,
  "baseUrl": null,
  "apiKey": "sk-abc...",
  "prompts": {
    "system": "You are a helpful assistant that answers questions based on the provided context."
  }
}

提示对象

名称类型描述
system字符串添加到对话开头以指导 LLM 的提示
searchDescription字符串解释内部搜索功能作用的提示
searchQParam字符串解释搜索功能的 q 参数作用以及如何使用它的提示
searchIndexUidParam字符串解释搜索功能的 indexUid 参数作用以及如何使用它的提示

获取聊天工作区设置

GET
/chats/{workspace_uid}/settings
检索聊天工作区的当前设置。

路径参数

名称类型描述
workspace_uid字符串工作区标识符

响应:200 OK

返回设置对象。出于安全原因,apiKey 字段已混淆。
{
  "source": "openAi",
  "prompts": {
    "system": "You are a helpful assistant."
  }
}

示例

curl \
  -X GET 'https://:7700/chats/WORKSPACE_UID/settings' \
  -H 'Authorization: Bearer MEILISEARCH_KEY'

更新聊天工作区设置

PATCH
/chats/{workspace_uid}/settings
配置聊天工作区的 LLM 提供商和设置。 如果工作区不存在,查询此端点将创建它。

路径参数

名称类型描述
workspace_uid字符串工作区标识符

设置参数

名称类型描述
source字符串LLM 源:"openAi""azureOpenAi""mistral""gemini""vLlm"
orgId字符串LLM 提供商的组织 ID(azureOpenAi 必需)
projectId字符串LLM 提供商的项目 ID
apiVersion字符串LLM 提供商的 API 版本(azureOpenAi 必需)
deploymentId字符串LLM 提供商的部署 ID(azureOpenAi 必需)
baseUrl字符串提供商的基础 URL(azureOpenAi 和 vLlm 必需)
apiKey字符串LLM 提供商的 API 密钥(vLlm 可选)
prompts对象包含系统提示和其他配置的提示对象

请求体

{
  "source": "openAi",
  "apiKey": "OPEN_AI_API_KEY",
  "prompts": {
    "system": "DEFAULT CHAT INSTRUCTIONS"
  }
}
所有字段都是可选的。只更新提供的字段。

响应:200 OK

返回更新后的设置对象。apiKey 是只写字段,不会在响应中返回。

示例

curl \
  -X PATCH 'https://:7700/chats/customer-support/settings' \
  -H 'Authorization: Bearer MEILISEARCH_KEY' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "source": "openAi",
    "apiKey": "sk-abc...",
    "prompts": {
      "system": "You are a helpful customer support assistant."
    }
  }'

重置聊天工作区设置

DELETE
/chats/{workspace_uid}/settings
将聊天工作区的设置重置为默认值。

路径参数

名称类型描述
workspace_uid字符串工作区标识符

响应:200 OK

返回不包含 apiKey 字段的设置对象。
{
  "source": "openAi",
  "prompts": {
    "system": "You are a helpful assistant."
  }
}

示例

curl \
  -X DELETE 'https://:7700/chats/customer-support/settings' \
  -H 'Authorization: Bearer MEILISEARCH_KEY'

聊天补全

POST
/chats/{workspace_uid}/chat/completions
使用 Meilisearch 的 OpenAI 兼容接口创建聊天补全。该端点搜索相关索引并根据检索到的内容生成响应。

路径参数

名称类型描述
workspace字符串聊天补全工作区的唯一标识符(uid)

请求体

{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "What are the main features of Meilisearch?"
    }
  ],
  "stream": true
}
名称类型必需描述
model字符串要使用的模型,将与工作区设置中的源 LLM 相关
messages数组包含 rolecontent 的消息对象数组
stream布尔值启用流式响应(默认:true
目前,仅支持流式响应(stream: true)。

消息对象

名称类型描述
role字符串消息角色:"system""user""assistant"
content字符串消息内容

响应

响应遵循 OpenAI 聊天补全格式。对于流式响应,端点返回服务器发送事件 (SSE)。

流式响应示例

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-3.5-turbo","choices":[{"index":0,"delta":{"content":"Meilisearch"},"finish_reason":null}]}

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-3.5-turbo","choices":[{"index":0,"delta":{"content":" is"},"finish_reason":null}]}

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1677652288,"model":"gpt-3.5-turbo","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

示例

curl -N \
  -X POST 'https://:7700/chats/customer-support/chat/completions' \
  -H 'Authorization: Bearer DEFAULT_CHAT_KEY' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "user",
        "content": "What is Meilisearch?"
      }
    ],
    "stream": true
  }'
© . This site is unofficial and not affiliated with Meilisearch.