use anyhow::Result;
use rag_module::RagModule;
use uuid::Uuid;
#[tokio::main]
async fn main() -> Result<()> {
println!("๐งช Testing request_id (ri) field functionality\n");
let mut rag = RagModule::new("./test-ri-data").await?;
rag.initialize().await?;
let context_id = "test-ri-conversation";
let user_id = "test-user-ri";
let chat_title = "Testing RI Field";
println!("๐ Adding messages with request_id...\n");
let req_id_1 = Uuid::new_v4().to_string();
println!("Turn 1 - Request ID: {}", &req_id_1[0..8]);
rag.add_prompt(
context_id,
"How many EC2 instances do we have?",
user_id,
Some(chat_title),
&req_id_1
).await?;
rag.add_response(
context_id,
"You have 16 EC2 instances running.",
user_id,
Some(chat_title),
&req_id_1
).await?;
let req_id_2 = Uuid::new_v4().to_string();
println!("Turn 2 - Request ID: {}", &req_id_2[0..8]);
rag.add_prompt(
context_id,
"Which ones run PostgreSQL?",
user_id,
Some(chat_title),
&req_id_2
).await?;
rag.add_response(
context_id,
"13 instances are running PostgreSQL.",
user_id,
Some(chat_title),
&req_id_2
).await?;
println!("\nโ
Messages added successfully!\n");
println!("๐ Retrieving decrypted chat history...\n");
let history = rag.get_decrypted_chat_history(user_id).await?;
println!("{}\n", serde_json::to_string_pretty(&history)?);
println!("โ
Done! Check the 'ri' field in each message above.");
Ok(())
}