mirror of
https://github.com/perstarkse/minne.git
synced 2026-04-01 15:13:11 +02:00
error handling, and setting result as return
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
use crate::storage::db::SurrealDbClient;
|
||||
use axum::{http::StatusCode, response::IntoResponse, Extension, Json};
|
||||
use crate::{
|
||||
error::ApiError,
|
||||
retrieval::vector::find_items_by_vector_similarity,
|
||||
storage::{db::SurrealDbClient, types::knowledge_entity::KnowledgeEntity},
|
||||
};
|
||||
use axum::{response::IntoResponse, Extension, Json};
|
||||
use serde::Deserialize;
|
||||
use std::sync::Arc;
|
||||
use tracing::{error, info};
|
||||
use tracing::info;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct QueryInput {
|
||||
@@ -12,6 +16,18 @@ pub struct QueryInput {
|
||||
pub async fn query_handler(
|
||||
Extension(db_client): Extension<Arc<SurrealDbClient>>,
|
||||
Json(query): Json<QueryInput>,
|
||||
) -> impl IntoResponse {
|
||||
) -> Result<impl IntoResponse, ApiError> {
|
||||
info!("Received input: {:?}", query);
|
||||
let openai_client = async_openai::Client::new();
|
||||
|
||||
let closest_items: Vec<KnowledgeEntity> = find_items_by_vector_similarity(
|
||||
10,
|
||||
query.query,
|
||||
&db_client,
|
||||
"knowledge_entity".to_string(),
|
||||
&openai_client,
|
||||
)
|
||||
.await?;
|
||||
|
||||
Ok(format!("{:?}", closest_items))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user