我正在开发一个项目,其中我的数据(大约 300K+ .doc 文件)位于 Blob 存储中,并且所有文件均为标准格式。我正在使用认知 AI 搜索来使用 Azure Open AI 获取正确的文件。下面的代码对我来说效果很好,但它没有给我提供超过 5 个文件的结果,而有 1000 个可用文件。
下面是我的代码。
var payload = new
{
dataSources = new[]
{
new
{
type = "AzureCognitiveSearch",
parameters = new
{
endpoint = azureSearchEndpoint,
key = azureSearchKey,
indexName = azureSearchIndex,
top = 20
}
}
},
messages = new[]
{
new
{
role = "user",
content = userMessage
}
},
max_tokens = 2980
};
// Create an HttpClient instance
using (HttpClient client = new HttpClient())
{
// Set the request headers
client.DefaultRequestHeaders.Add("api-key", oaiKey);
// Serialize the payload
string serializedPayload = JsonConvert.SerializeObject(payload);
// Create the request content
StringContent cont = new StringContent(serializedPayload, System.Text.Encoding.UTF8, "application/json");
await Task.Delay(10000);
// Make the POST request
HttpResponseMessage response = await client.PostAsync($"{oaiEndpoint}/openai/deployments/{oaiDeploymentName}/extensions/chat/completions?api-version=2023-06-01-preview", cont);
// Read the response content
string responseContent = await response.Content.ReadAsStringAsync();
JObject parsedJson = JObject.Parse(responseContent);
resContent = (string)parsedJson["choices"]?[0]?["messages"]?[1]?["content"];
我尝试添加批处理,还添加了循环中的多个请求以获得更多结果并将它们组合起来。更改 max token 和 top 等参数,但没有运气!
在
chat completion
回复中,您看到的参考文献/引文不一定是从人工智能搜索中撤回的所有文档。目前,引文列表只会返回 1-5 条参考文献,您无法配置大小。
我认为你的问题更多的是如何确保人工智能搜索的结果很好地涵盖了问题。如果是这样,您可以在 azure 门户中使用相同的提示来查看有多少条匹配的记录。或者,也许可以在代码中打开跟踪。