Spaces:
Runtime error
Runtime error
| from firebase import firebase | |
| import os,json | |
| import baseInfra.firebase_handler as fbh | |
| secret=os.environ['FIREBASE_TOKEN'] | |
| user_id="131251" | |
| auth=firebase.FirebaseAuthentication(secret=secret,email="anubhav77@gmail.com",extra={"id":user_id}) | |
| fb_url="https://device-1a455.firebaseio.com" | |
| fb= firebase.FirebaseApplication(fb_url,auth) | |
| base_dir="/users/"+user_id | |
| class DbInterface: | |
| """ | |
| A database interface. | |
| This class provides a dummy implementation of a database interface. It has two methods: `get_task_list()` and `update_task_list()`. | |
| """ | |
| def __init__(self): | |
| self.base_dir=base_dir | |
| self.conf_loc="llm_config" | |
| self.cache_loc="vs_cache" | |
| def _set_base_dir(self,sub_dir): | |
| """ | |
| This internal method is primarily for unit testcases | |
| Adds extra subdir to the path | |
| """ | |
| if sub_dir.startswith("/"): | |
| self.base_dir=base_dir+sub_dir | |
| else: | |
| self.base_dir=base_dir+"/"+sub_dir | |
| if self.base_dir.endswith("/"): | |
| self.base_dir=self.base_dir[:-1] | |
| return self.base_dir | |
| def get_config(self,path): | |
| """ | |
| Gets the config from the database given path | |
| This is used for getting configs of executor, planner or tools | |
| Returns: | |
| The json config object. | |
| """ | |
| print(self.base_dir+"/"+self.conf_loc) | |
| print(path) | |
| config = fb.get(self.base_dir+"/"+self.conf_loc, path) | |
| if config is None: | |
| return {} | |
| return config | |
| def get_matching_cache(self,input): | |
| """ | |
| Gets the matching cache from the database given input | |
| This is used for getting similar documents from the vector store | |
| Returns: | |
| The json cache object. | |
| """ | |
| fb_key=fbh.convert_to_firebase_key(input) | |
| cache = fb.get(self.base_dir+"/"+self.cache_loc, fb_key) | |
| if cache == None: | |
| return [] | |
| else: | |
| return cache['value'] | |
| return [] | |
| def add_to_cache(self,input,value): | |
| """ | |
| Adds the input and value to the cache | |
| This is used for adding documents to the vector store | |
| Returns: | |
| The True if item in cache was updated and false if a new item was added | |
| """ | |
| retVal=False | |
| fb_key=fbh.convert_to_firebase_key(input) | |
| #cache = fb.get(self.base_dir+"/"+self.cache_loc, fb_key) | |
| # if cache is None: | |
| # cache = {} | |
| # else: | |
| # for item in cache: #ie cache is list of dicts {'input':inStr,'value':cached_items_list} | |
| # if item['input'] == input: | |
| # item['value']=value | |
| # retVal=True | |
| # #cache.append({'input':input,'value':value}) | |
| cache={'input':input,'value':value} | |
| print(f"Adding to cache the results {value} for {input}") | |
| fb.patch(self.base_dir+"/"+self.cache_loc, {fb_key:cache}) | |
| return retVal | |