jaothan commited on
Commit
0994965
·
verified ·
1 Parent(s): 3d78e51

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -15
app.py CHANGED
@@ -1,15 +1,50 @@
1
- from fastapi import FastAPI
2
- from app.routes.vector_routes import router as vector_router
3
- from app.utils.database import connect_to_mongo, close_mongo_connection
4
-
5
- app = FastAPI()
6
-
7
- app.include_router(vector_router)
8
-
9
- @app.on_event("startup")
10
- async def startup_db_client():
11
- await connect_to_mongo()
12
-
13
- @app.on_event("shutdown")
14
- async def shutdown_db_client():
15
- await close_mongo_connection()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from pymongo import MongoClient
3
+ import os
4
+ from pydantic import BaseModel
5
+ from typing import List
6
+
7
+ # Load environment variables
8
+ MONGO_URI = os.getenv("MONGO_URI")
9
+ MONGO_DB_NAME = os.getenv("MONGO_DB_NAME")
10
+
11
+ # Connect to MongoDB
12
+ client = MongoClient(MONGO_URI)
13
+ db = client[MONGO_DB_NAME]
14
+ vectors_collection = db["vectors"]
15
+
16
+ # Define a Pydantic model for vectors
17
+ class Vector(BaseModel):
18
+ vector: List[float]
19
+ metadata: dict
20
+
21
+ # Streamlit app
22
+ st.title("MongoDB Vector Search with Streamlit")
23
+
24
+ # Form to insert a vector
25
+ with st.form("vector_form"):
26
+ st.write("Insert a new vector")
27
+ vector_input = st.text_input("Enter vector (comma-separated floats):")
28
+ metadata_input = st.text_input("Enter metadata (JSON format):")
29
+ submitted = st.form_submit_button("Submit")
30
+
31
+ if submitted:
32
+ try:
33
+ # Parse the vector and metadata
34
+ vector = [float(x) for x in vector_input.split(",")]
35
+ metadata = eval(metadata_input) # Convert JSON string to dict
36
+
37
+ # Create a Vector object
38
+ new_vector = Vector(vector=vector, metadata=metadata)
39
+
40
+ # Insert into MongoDB
41
+ result = vectors_collection.insert_one(new_vector.dict())
42
+ st.success(f"Vector inserted with ID: {result.inserted_id}")
43
+ except Exception as e:
44
+ st.error(f"Error: {e}")
45
+
46
+ # Display all vectors
47
+ st.write("## Stored Vectors")
48
+ vectors = vectors_collection.find()
49
+ for vector in vectors:
50
+ st.json(vector)