Installation and Quickstart#

Native python usage#

pip3 install awadb, now available for Linux and MacOSX, no AwaDB server is needed. It is a simple example for using as below:

import awadb
# step 1. Initialize awadb client!
awadb_client = awadb.Client()

# step 2. Create table
awadb_client.Create("test_llm1") 

# step 3. Add sentences, the sentence is embedded with SentenceTransformer by default
#    You can also embed the sentences all by yourself with OpenAI or other LLMs
awadb_client.Add([{'embedding_text':'The man is happy'}, {'source' : 'pic1'}])
awadb_client.Add([{'embedding_text':'The man is very happy'}, {'source' : 'pic2'}])
awadb_client.Add([{'embedding_text':'The cat is happy'}, {'source' : 'pic3'}])
awadb_client.Add([{'embedding_text':'The man is eating'}, {'source':'pic4'}])

# step 4. Search the most Top3 sentences by the specified query
query = "The man is happy"
results = awadb_client.Search(query, 3)

# step 5. Output the results
print(results)

Use docker as a service#

Pull docker image first and then install the awadb-client as below:

# 1. Pull AwaDB docker image
docker pull ljeagle/awadb:v0.08

# 2. Run AwaDB Server
docker run -itd -p 50005:50005 ljeagle/awadb:v0.08

# 3. Install AwaDB Client
pip3 install awadb-client

Finally, you can use the python sdk to request the service as below:

# Import the package and module
from awadb.client import Awa

# Initialize awadb client
client = Awa()

# Add dict with vector to table 'example1'
client.add("example1", {'name':'david', 'feature':[1.3, 2.5, 1.9]})
client.add("example1", {'name':'jim', 'feature':[1.1, 1.4, 2.3]})

# Search
results = client.search("example1", [1.0, 2.0, 3.0])

# Output results
print(results)

# '_id' is the primary key of each document
# It can be specified clearly when adding documents
# Here no field '_id' is specified, it is generated by the awadb server 
db_name: "default"
table_name: "example1"
results {
  total: 2
  msg: "Success"
  result_items {
    score: 0.860000074
    fields {
      name: "_id" 
      value: "64ddb69d-6038-4311-9118-605686d758d9"
    }
    fields {
      name: "name"
      value: "jim"
    }
  }
  result_items {
    score: 1.55
    fields {
      name: "_id"
      value: "f9f3035b-faaf-48d4-a947-801416c005b3"
    }
    fields {
      name: "name"
      value: "david"
    }
  }
}
result_code: SUCCESS