datadabllp

Chroma in a FastAPI web application

Jul 19th, 2024
3,975
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.75 KB | None | 0 0
  1. from fastapi import FastAPI
  2. import chromadb
  3. from chromadb.config import Settings
  4.  
  5. app = FastAPI()
  6.  
  7. # Initialize Chroma client
  8. client = chromadb.Client(Settings(
  9.     chroma_db_impl="duckdb+parquet",
  10.     persist_directory="/path/to/persist"
  11. ))
  12.  
  13. collection = client.get_or_create_collection(name="documents")
  14.  
  15. @app.post("/add_document")
  16. async def add_document(content: str, metadata: dict):
  17.     collection.add(
  18.         documents=[content],
  19.         metadatas=[metadata],
  20.         ids=[str(hash(content))]
  21.     )
  22.     return {"status": "success"}
  23.  
  24. @app.get("/search")
  25. async def search(query: str):
  26.     results = collection.query(
  27.         query_texts=[query],
  28.         n_results=5
  29.     )
  30.     return results
  31.  
  32. # Run with: uvicorn app:app --reload
  33.  
Advertisement
Add Comment
Please, Sign In to add comment