2
"""This example shows how to use Redis as a vector embedding database with llmware"""
4
""" (A) Python Dependencies -
6
As a first step, you should pip install dependencies not included in the llmware package:
11
If you need help installing Redis, please see the official redis implementation docs (or many widely available tutorials), e.g.,:
12
-- https://redis.io/docs/install/install-redis/
13
-- for a fast development install with docker-compose:
14
-- please see docker-compose-redis-stack.yaml in the llmware repository
17
-- set os.environ variables to 'automatically' pass in installing embedding
18
-- os.environ["USER_MANAGED_REDIS_HOST"] = "localhost"
19
-- os.environ["USER_MANAGED_REDIS_PORT"] = 6379
26
from llmware.setup import Setup
27
from llmware.library import Library
28
from llmware.retrieval import Query
31
def build_lib (library_name, folder="Agreements"):
34
print ("\nupdate: Step 1 - Creating library: {}".format(library_name))
36
library = Library().create_new_library(library_name)
40
print ("update: Step 2 - Downloading Sample Files")
42
sample_files_path = Setup().load_sample_files(over_write=False)
46
print("update: Step 3 - Parsing and Text Indexing Files")
49
library.add_files(input_folder_path=os.path.join(sample_files_path, folder))
56
print("update: Step 1- starting here- building library- parsing PDFs into text chunks")
58
lib = build_lib("redis_lib_1114_0")
61
lib_card = lib.get_library_card()
62
print("update: -- before embedding process - check library card - ", lib_card)
64
print("update: Step 2 - starting to install embeddings")
71
lib.install_new_embedding(embedding_model_name="industry-bert-contracts",vector_db="redis",batch_size=300)
74
lib_card = lib.get_library_card()
75
print("update: -- after embedding process - check updated library card - ", lib_card)
82
query_pgv = Query(lib, embedding_model_name="industry-bert-contracts")
85
my_search_results = query_pgv.semantic_query("What is the sale bonus?", result_count = 24)
87
for i, qr in enumerate(my_search_results):
88
print("update: semantic query results: ", i, qr)
94
emb_record = lib.get_embedding_status()
95
for j, entries in enumerate(emb_record):
96
print("update: embeddings on library: ", j, entries)