Skip to content

Instantly share code, notes, and snippets.

@pavlovmilen
Last active April 8, 2024 16:09
Show Gist options
  • Save pavlovmilen/d1a88b0b60223984598c5716ecc28265 to your computer and use it in GitHub Desktop.
Save pavlovmilen/d1a88b0b60223984598c5716ecc28265 to your computer and use it in GitHub Desktop.
Query ChromaDb call in c#
public async Task<ChromaDbResult> QueryByTextAsync(string queryText)
{
try
{
var payload = new { parameters = new { query_text = queryText, n_results = 2 } };
string jsonPayload = JsonConvert.SerializeObject(payload);
var requestContent = new StringContent(jsonPayload, System.Text.Encoding.UTF8, "application/json");
var response = await _client.PostAsync("query", requestContent);
response.EnsureSuccessStatusCode();
var chromaDbQueryResult = await response.Content.ReadFromJsonAsync<ChromaDbQueryResultModel>();
var documentText = chromaDbQueryResult.data.documents.FirstOrDefault()?.FirstOrDefault();
var metadatas = chromaDbQueryResult.data.metadatas.FirstOrDefault()?.FirstOrDefault();
var distance = chromaDbQueryResult.data.distances?.FirstOrDefault()?.FirstOrDefault() ?? (double)1;
return new ChromaDbResult
{
DocumentText = documentText,
FileName = fileName,
IsSuccess = string.IsNullOrEmpty(documentText) ? false : true,
Distance = distance
};
}
catch (Exception ex)
{
_logger.LogException(ex);
throw;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment