Использование Mistral с SemanticTextMemory для встраивания генерации с использованием miStralClient (). Enterdings.astexC#

Место общения программистов C#
Anonymous
 Использование Mistral с SemanticTextMemory для встраивания генерации с использованием miStralClient (). Enterdings.astex

Сообщение Anonymous »

Ошибка: невозможное исключение. System.aggregateException: произошли одна или несколько ошибок. https://api.mistral.ai/v1/embeddings с кодом состояния http: badrequest. Содержимое: {«объект»: «ошибка», «сообщение»: «Неверная модель: none», «Тип»: «Invalid_model», «Param»: NULL, «код»: «1500»}) . < /p>
public class Model
{
private List _chatHistory = [];
private const string DocumentPath = "posts.txt";
private const string QdrantCollectionName = "HotDog_Project";
private ISemanticTextMemory _memory;
private MistralClient _client;

public Model(string mistralApiKey,string qdrantApiKey ,string qdrantEndPoint)
{
var mistralApiAuth = new APIAuthentication(mistralApiKey);
_client = new MistralClient(mistralApiAuth);

HttpClient qdrantHttpClient = new HttpClient();
qdrantHttpClient.BaseAddress = new Uri(qdrantEndPoint);
qdrantHttpClient.DefaultRequestHeaders.Add("api-key", qdrantApiKey);

var qdrantClient = new QdrantVectorDbClient(qdrantHttpClient,512);

var embeddingService = _client.Embeddings.AsTextEmbeddingGenerationService();

_memory = new SemanticTextMemory(new QdrantMemoryStore(qdrantClient),
embeddingService);

Task.Run(async () => await LoadAndEmbedDocuments()).Wait();
}
private async Task LoadAndEmbedDocuments()
{
// reading and splitting the text
var documentText = await File.ReadAllTextAsync(DocumentPath);
var chunks = SplitTextIntoChunks(documentText, 300);
// embedding text
foreach (var (chunk, index) in chunks.Select((chunk, index) => (chunk, index)))
{
var chunkId = $"chunk_{index}"; // Example: "chunk_0", "chunk_1"
**await _memory.SaveInformationAsync(QdrantCollectionName, chunk, chunkId);**
}

}

< /code>
Ошибка происходит из функции _memory.saveinformationAsync, которая пытается автоматически использовать зарегистрированную службу встроенного текста Mistral. Я понимаю, что причина плохого запроса заключается в том, что «модель» отсутствует в заголовках запроса, но я не могу найти способ настроить заголовки запроса, чтобы добавить параметр модели. < /P>
i Попробовал создать отдельного клиента для внедрения и выполнения следующего: < /p>
var embeddingHttpClient = new HttpClient();
embeddingHttpClient.DefaultRequestHeaders.Add("model",ModelDefinitions.MistralEmbed);
var embeddingClient = new MistralClient(mistralApiAuth, embeddingHttpClient);
var embeddingService = embeddingClient.Embeddings.AsTextEmbeddingGenerationService();
_memory = new SemanticTextMemory(new QdrantMemoryStore(qdrantClient),
embeddingService);
< /code>
Это также не работает. .

Подробнее здесь: https://stackoverflow.com/questions/794 ... istralclie

Вернуться в «C#»