Kognitive KI-Suche in Blob Storage mit Azure Open AI
Posted: 20 Jan 2025, 12:57
Ich arbeite an einem Projekt, bei dem sich meine Daten (ca. 300.000+ .doc-Dateien) im Blob-Speicher befinden und alle Dateien im Standardformat vorliegen. Ich verwende die kognitive KI-Suche, um mit Azure Open AI die richtigen Dateien zu finden. Der folgende Code funktioniert für mich gut, liefert mir jedoch keine Ergebnisse für mehr als 5 Dateien, während Tausende von Dateien verfügbar sind.
Unten ist mein Code.
Ich habe versucht, Batchverarbeitung hinzuzufügen, außerdem habe ich mehrere Anfragen in einer Schleife hinzugefügt, um mehr Ergebnisse zu erhalten und diese zu kombinieren. Ändern von Parametern wie „Max Token“ und „Top“, aber kein Erfolg!
Unten ist mein Code.
Code: Select all
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"];