Ask-ANRG / openai_function_utils /openai_function_impl.py
FloraJ's picture
update model
de3c2ee
raw
history blame
3.05 kB
"""
Util functions for openai api
"""
import json
import os
from thefuzz import process
def get_lab_member_info(name: str):
database_addr = os.path.join(os.getcwd(), 'database/original_documents/members.json')
with open(database_addr, 'r') as fin:
all_members_info = json.load(fin)
for field in all_members_info:
toSearch = all_members_info[field]
for i in toSearch:
if name.lower() in i['name'].lower():
return json.dumps(i)
return json.dumps({})
def get_lab_member_detailed_info(name: str, detailed_info: str):
database_addr = os.path.join(os.getcwd(), 'database/original_documents/members.json')
with open(database_addr, 'r') as fin:
all_members_info = json.load(fin)
for field in all_members_info:
toSearch = all_members_info[field]
for i in toSearch:
if name.lower() in i['name'].lower():
if "link" in detailed_info.lower() or "homepage" in detailed_info.lower():
return json.dumps(i['links'])
elif "photo" in detailed_info.lower() or "pic" in detailed_info.lower() or "picture" in detailed_info.lower():
return json.dumps(i['photo'])
else:
return json.dumps(i["description"])
return json.dumps({})
def get_publication_by_year(year: str):
database_addr = os.path.join(os.getcwd(), 'database/original_documents/publications.json')
with open(database_addr, 'r') as fin:
all_pub_info = json.load(fin)
data = {}
for field in all_pub_info:
to_search = all_pub_info[field]
for i in to_search:
if int(year) == i['year']:
data.update(i)
return json.dumps(data)
def get_pub_info(name: str):
database_addr = os.path.join(os.getcwd(), 'database/original_documents/publications.json')
with open(database_addr, 'r') as fin:
all_members_info = json.load(fin)
for i in all_members_info:
if name.lower() in i['title'].lower():
return json.dumps(i)
return json.dumps({})
def get_pub_by_name(name: str):
database_addr = os.path.join(os.getcwd(), 'database/original_documents/publications.json')
with open(database_addr, 'r') as fin:
all_members_info = json.load(fin)
data = {}
for i in all_members_info:
for author in i['authors']:
if name.lower() in author.lower():
data.update(i)
return json.dumps(data)
def get_fuzz_name(name: str):
choices = {}
database_addr = os.path.join(os.getcwd(), 'database/original_documents/members.json')
with open(database_addr, 'r') as fin:
all_members_info = json.load(fin)
for field in all_members_info:
toSearch = all_members_info[field]
for i in toSearch:
choices.add(i['name'])
best = process.extractOne(name, choices, score_cutoff=50)
if best:
return best[0]
else:
return None
def semantic_search(query: str):
return