azure - 不清楚 Azure OpenAI 端点/扩展/聊天/完成如何在幕后进行检索

标签 azure azure-cognitive-search openai-api azure-openai

我正在玩这个example chat application它从认知搜索中检索最相关的文档,以帮助聊天机器人回答用户的问题。文档检索本身不是应用程序代码的一部分,而是在应用程序调用“/deployments/{deployment-id}/extensions/chat/completions”端点时被抽象出来。

我无法从文档中理解 /deployments/{deployment-id}/extensions/chat/completions 端点如何在幕后与认知搜索交互。 背景是我试图了解它提供了哪些灵 active ,以及​​如果我们想要更改某些内容,需要如何手动实现文档的检索和集成到 LLM 的提示中。

扩展程序调用什么认知搜索端点以及使用什么参数?以下是我自己发送的 API 请求示例,用于尝试重现工具引用中的前 5 个结果

curl --location 'https://[deployment].search.windows.net/indexes/[index]/docs/search?api-version=2023-07-01-Preview' \
--header 'Content-Type: application/json' \
--header 'api-key: [key]' \
--data '{  
     "queryType": [I tried full, simple and semantic here, semantic with different settings for other required parameters]
     "search": "[question text]",  
     "top": 5
   }  '

我得到的文档与 Azure 门户中认知搜索的搜索资源管理器中返回的文档相同,但它们与 extensions/chat/completions 请求返回的文档不同。对于相同的 block ,相关性分数有时相同,但有时也不同。您能透露为什么会发生这种情况吗?

在 Azure OpenAI Playground 和此示例应用中实现的文档检索中未使用嵌入,这是否正确?

是否有更多的系统文本隐藏在某个地方,指示模型查看源代码并以这种 [doc1] 格式提供引用?如果我们对引用准确性不满意,我们将如何修改?

最佳答案

该 API 处于预览阶段,通常相当“黑匣子”。

它确实允许使用多种不同的方式来搜索索引(例如,您可以选择是否需要语义、向量、vectorSimpleHybrid 或 vectorSemanticHybrid),但从文档中尚不清楚(我认为这是设计使然)比如说,向量搜索只是向量化最后一个用户消息并进行搜索,或者是否有某种 langchain-esq 后台服务要求 LLM 生成搜索查询,然后将其提交给认知搜索。

您可以阅读文档并将 dataSources 中的选项与其余 API 文档进行交叉引用以进行认知搜索,但这对解释底层过程起不了多大作用。

关于azure - 不清楚 Azure OpenAI 端点/扩展/聊天/完成如何在幕后进行检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76721674/

相关文章:

azure - 在 Azure 搜索标记增强中使用逗号标记参数

nlp - 在 openAI 提示符下处理 80 多个函数调用的好策略是什么

python - 为什么此 Web 托管的 Python 代码会导致 500 内部错误?

php - 警告 : mysqli_connect(): (HY000/2002): An attempt was made to access a socket in a way forbidden by its access permissions

sql - 查询求和函数

azure - 将Web项目发布到azure失败: The "IsolatedCSPack" task failed unexpectedly

azure-cognitive-search - 在 azure 搜索中创建数据源返回 403 Forbidden

search - Azure 搜索分层搜索字段

visual-studio - 发布到 Azure 时出现 gulp 错误

python - 如何给 OpenAI 的 Whisper ASR 一些提示短语?