Python Client for Epsilla Vector Database
Welcome to Python SDK for Epsilla Vector Database!
pip3 install --upgrade pyepsilladocker pull epsilla/vectordb docker run -d -p 8888:8888 epsilla/vectordbIf you are using Jupyter Notebook on localhost, the port 8888 maybe conflict!
So you can change the vectordb port to another number, such as 18888
docker run -d -p 18888:8888 epsilla/vectordb frompyepsillaimportvectordbdb_name="MyDB"db_path="/tmp/epsilla"table_name="MyTable"## 1.Connect to vectordbclient=vectordb.Client( host='localhost', port='8888' ) ## 2.Load and use a databaseclient.load_db(db_name, db_path) client.use_db(db_name) ## 3.Create a table in the current databaseclient.create_table( table_name=table_name, table_fields=[{"name": "ID", "dataType": "INT", "primaryKey": True},{"name": "Doc", "dataType": "STRING"},{"name": "Embedding", "dataType": "VECTOR_FLOAT", "dimensions": 4} ] ) ## 4.Insert recordsclient.insert( table_name=table_name, records=[{"ID": 1, "Doc": "Berlin", "Embedding": [0.05, 0.61, 0.76, 0.74]},{"ID": 2, "Doc": "London", "Embedding": [0.19, 0.81, 0.75, 0.11]},{"ID": 3, "Doc": "Moscow", "Embedding": [0.36, 0.55, 0.47, 0.94]},{"ID": 4, "Doc": "San Francisco", "Embedding": [0.18, 0.01, 0.85, 0.80]},{"ID": 5, "Doc": "Shanghai", "Embedding": [0.24, 0.18, 0.22, 0.44]} ] ) ## 5.Search with specific response fieldstatus_code, response=client.query( table_name=table_name, query_field="Embedding", query_vector=[0.35, 0.55, 0.47, 0.94], response_fields= ["Doc"], limit=2 ) print(response) ## 6.Search without specific response field, then it will return all fieldsstatus_code, response=client.query( table_name=table_name, query_field="Embedding", query_vector=[0.35, 0.55, 0.47, 0.94], limit=2 ) print(response) ## 7.Delete records by primary_keys (and filter)status_code, response=client.delete(table_name=table_name, primary_keys=[3, 4]) status_code, response=client.delete(table_name=table_name, filter="Doc <> 'San Francisco'") print(response) ## 8.Drop a tableclient.drop_table(table_name) ## 9.Unload a database from memoryclient.unload_db(db_name)Please get the project_id, db_id, epsilla_api_key from Epsilla Cloud at first
frompyepsillaimportcloudepsilla_api_key=os.getenv("EPSILLA_API_KEY", "Your-Epsilla-API-Key") project_id=os.getenv("EPSILLA_PROJECT_ID", "Your-Project-ID") db_id=os.getenv("EPSILLA_DB_ID", "Your-DB-ID") # 1.Connect to Epsilla Cloudcloud_client=cloud.Client(project_id="*****-****-****-****-************", api_key="eps_**********") # 2.Connect to Vectordbdb_client=cloud_client.vectordb(db_id) # 3.Create a table with schemastatus_code, response=db.create_table( table_name="MyTable", table_fields=[{"name": "ID", "dataType": "INT", "primaryKey": True},{"name": "Doc", "dataType": "STRING"},{"name": "Embedding", "dataType": "VECTOR_FLOAT", "dimensions": 4}, ], ) print(status_code, response) # 4.Insert new vector records into tablestatus_code, response=db.insert( table_name="MyTable", records=[{"ID": 1, "Doc": "Berlin", "Embedding": [0.05, 0.61, 0.76, 0.74]},{"ID": 2, "Doc": "London", "Embedding": [0.19, 0.81, 0.75, 0.11]},{"ID": 3, "Doc": "Moscow", "Embedding": [0.36, 0.55, 0.47, 0.94]},{"ID": 4, "Doc": "San Francisco", "Embedding": [0.18, 0.01, 0.85, 0.80]},{"ID": 5, "Doc": "Shanghai", "Embedding": [0.24, 0.18, 0.22, 0.44]}, ], ) print(status_code, response) # 5.Query Vectors with specific response field, otherwise it will return all fieldsstatus_code, response=db.query( table_name="MyTable", query_field="Embedding", query_vector=[0.35, 0.55, 0.47, 0.94], response_fields=["Doc"], limit=2, ) print(status_code, response) # 6.Delete specific records from tablestatus_code, response=db.delete(table_name="MyTable", primary_keys=[4, 5]) status_code, response=db.delete(table_name="MyTable", filter="Doc <> 'San Francisco'") print(status_code, response) # 7.Drop tablestatus_code, response=db.drop_table(table_name="MyTable") print(status_code, response) Please get the project_id, epsilla_api_key, ragapp_id, converstation_id(optional) from Epsilla Cloud at first The resp will contains answer as well as contexts, like{"answer": "****", "contexts": ['context1','context2', ...]}
frompyepsillaimportcloudepsilla_api_key=os.getenv("EPSILLA_API_KEY", "Your-Epsilla-API-Key") project_id=os.getenv("EPSILLA_PROJECT_ID", "Your-Project-ID") ragapp_id=os.getenv("EPSILLA_RAGAPP_ID", "Your-RAGAPP-ID") conversation_id=os.getenv("EPSILLA_CONVERSATION_ID", "Your-CONVERSATION-ID") # 1.Connect to Epsilla RAGclient=cloud.RAG( project_id=project_id, api_key=epsilla_api_key, ragapp_id=ragapp_id, conversation_id=conversation_id, ) # 2.Start a new conversation with RAGclient.start_new_conversation() resp=client.query("What's RAG?") print("[INFO] response is", resp)Bug reports and pull requests are welcome on GitHub at here
If you have any question or problem, please join our discord
We love your Feedback!
