How to Get Started with Epsilla: The Next-Gen Vector Database

Oct 6, 2022 | Educational

Welcome to Epsilla, the revolutionary open-source vector database that promises to be 10x faster, cheaper, and better than its competitors. This guide is aimed at helping you set up and dive into the exciting world of vector search with EpsillaDB. Let’s roll up our sleeves and get started!

Understanding Epsilla: A Quick Overview

Think of Epsilla as a powerful librarian who can swiftly find any book (information) you’re looking for in a gigantic library (database). But not just that—this librarian also remembers details about the books and can even summarize their content based on your queries. This is achieved through advanced vector indexing techniques, allowing you to retrieve data efficiently even as your library grows.

Quick Start Using Docker

To get started, we’ll run Epsilla in a Docker container and interact with it via a Python client. Here’s a simple step-by-step guide:

1. Run Backend in Docker

docker pull epsillavector
docker run --pull=always -d -p 8888:8888 -v data:data epsillavector

2. Interact with Python Client

Once you have the backend running, you can interact with it using Python. Follow these steps:

pip install pyepsilla
from pyepsilla import vectordb

client = vectordb.Client(host='localhost', port=8888)
client.load_db(db_name='MyDB', db_path='data/epsilla')
client.use_db(db_name='MyDB')
client.create_table(
    table_name='MyTable',
    table_fields=[
        {'name': 'ID', 'dataType': 'INT', 'primaryKey': True},
        {'name': 'Doc', 'dataType': 'STRING'},
    ],
    indices=[
        {'name': 'Index', 'field': 'Doc'},
    ]
)

client.insert(
    table_name='MyTable',
    records=[
        {'ID': 1, 'Doc': 'Jupiter is the largest planet in our solar system.'},
        {'ID': 2, 'Doc': 'Cheetahs are the fastest land animals, reaching speeds over 60 mph.'},
        {'ID': 3, 'Doc': 'Vincent van Gogh painted the famous work Starry Night.'},
        {'ID': 4, 'Doc': 'The Amazon River is the longest river in the world.'},
        {'ID': 5, 'Doc': 'The Moon completes one orbit around Earth every 27 days.'},
    ],
)

client.query(
    table_name='MyTable',
    query_text='Celestial bodies and their characteristics',
    limit=2
)# Result
# message: Query search successfully.,
# result:
# [
#     {'Doc': 'Jupiter is the largest planet in our solar system.', 'ID': 1},
#     {'Doc': 'The Moon completes one orbit around Earth every 27 days.', 'ID': 5}
# ],
# statusCode: 200

Key Features of Epsilla

  • High performance for similarity search on embedding vectors
  • Full-fledged database management with easy familiarity
  • Metadata filtering
  • Hybrid search options combining dense and sparse vectors
  • Cloud-native architecture with serverless capabilities
  • Integrates with popular frameworks like LangChain and LlamaIndex
  • Supports various programming clients including Python, JavaScript, Ruby, and REST API

Using Epsilla as a Python Library (Experimental)

You can also use Epsilla as a Python library without having to run the Docker image. Here’s how to do that:

1. Build Epsilla Python Bindings Package

cd engine/scripts
bash setup-dev.sh (only if on Ubuntu)
bash install_oatpp_modules.sh
cd ..
bash build.sh
ls -lh build/*.so

2. Run Tests with Python Bindings

cd engine
export PYTHONPATH=./build
export DB_PATH=tmpdb

python3 testbindings.py

Troubleshooting Common Issues

If you encounter issues during setup, here are some common troubleshooting steps:

  • Ensure Docker is installed and running properly.
  • If you face networking issues, check your firewall settings or ensure Docker is exposing the correct ports.
  • For Python client issues, confirm that you have installed the pyepsilla library correctly.
  • If you receive errors related to database connectivity, double-check that your DB name and path are correctly specified in your code.
  • For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Final Thoughts

With this guide, you’re well on your way to harnessing the power of Epsilla. Its ability to deliver high-performance searches, efficiency, and cost-effectiveness will undoubtedly take your data management and retrieval to the next level. Happy coding!

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox