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