Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Epsilla Logo

Python Client for Epsilla Vector Database


Welcome to Python SDK for Epsilla Vector Database!

Install pyepsilla

pip3 install --upgrade pyepsilla

Connect to Epsilla Vector Database

Run epsilla vectordb on localhost

docker pull epsilla/vectordb
docker run -d -p 8888:8888 epsilla/vectordb

When Port 8888 conflicted with Jupyter Notebook

If 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

Use pyepsilla to connect to and interact with local vector database

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)

Connect to Epsilla Cloud

Register and create vectordb on Epsilla Cloud

https://cloud.epsilla.com

Use Epsilla Cloud module to connect with the vectordb

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)

Connect to Epsilla RAG

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)

Contributing

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!

About

Python client for Epsilla Vector Database

Resources

Code of conduct

Contributing

Security policy

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages