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

insrf1ej  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(114)

我正在使用这个example chat application,它可以从认知搜索中检索最相关的文档,以帮助聊天机器人回答用户的问题。文档检索本身并不是应用程序代码的一部分,而是在应用程序调用“/deployments/{deployment-id}/extensions/chat/completions”端点时抽象出来的。
我无法从文档中理解/deployments/{deployment-id}/extensions/chat/completions端点如何在幕后与Cognitive Search交互。背景是我试图理解它提供了什么样的灵活性,以及如果我们想改变一些东西,手动实现文档的检索和集成到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请求返回的文档不同。对于相同的组块,相关性分数有时是相同的,但有时也是不同的。你能解释一下为什么会这样吗?
在Azure OpenAI playground和此示例应用程序中实现的文档检索中没有使用嵌入,这是正确的吗?
是否有更多的系统文本隐藏在某处,指示模型查看源代码并以[doc 1]格式提供引用?如果我们对引用的准确性不满意,我们将如何修改?

4si2a6ki

4si2a6ki1#

API处于预览状态,通常是“黑匣子”。
它确实允许很多不同的方式来搜索索引(例如,你可以选择是否需要语义,矢量,vectorSimpleHybrid或vectorSemanticHybrid),但从文档中还不清楚(我认为这是设计),如果说,矢量搜索只是矢量化最后一条用户消息并进行搜索,或者是否有某种langchain esq后台服务要求LLM生成搜索查询,然后提交给认知搜索。
您可以阅读文档并交叉引用dataSources中的选项和其余API文档以进行认知搜索,但它对解释底层过程没有什么帮助。

  • https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#completions-extensions

相关问题