ruchat 0.1.2

ollama/chroma command-line AI chat tool
Documentation
use crate::chroma::create_client;
use crate::error::RuChatError;
use chromadb::collection::{ChromaCollection, CollectionEntries};
use serde_json::Value;

pub(crate) async fn store_session_data() -> Result<(), RuChatError> {
    // Connect to the Chroma database
    let client = create_client(None, "http://0.0.0.0:8000", "default").await?;

    // Define the collection name
    let collection_name = "session_data";

    // Create or get the collection
    let collection: ChromaCollection = client
        .get_or_create_collection(collection_name, None)
        .await?;

    // Define the session data to store
    let session_data = Value::String("This is a sample session data.");

    // Create collection entries
    let collection_entries = CollectionEntries {
        ids: vec!["session_1"],
        embeddings: None,
        metadatas: None,
        documents: Some(vec![&session_data.to_string()]),
    };

    // Store the session data in the collection
    collection.upsert(collection_entries, None).await?;

    println!("Session data stored successfully.");
    Ok(())
}