|
|
|
from openai_function_utils.openai_function_impl import get_lab_member_info, get_pub_info, get_lab_member_detailed_info, \ |
|
get_publication_by_year, get_pub_by_name, get_fuzz_name, semantic_search |
|
|
|
OPENAI_FUNCTIONS_DEFINITIONS = [ |
|
{ |
|
"name": "get_lab_member_info", |
|
"description": "Get name, photo url, links such as LinkedIn and GitHub, and description of a member of a lab by name. This function is helpful when asked about a name, such as Bhaskar Krishnamachari.", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"name": { |
|
"type": "string", |
|
"description": "Name of a lab member, e.g. Jared Coleman", |
|
} |
|
}, |
|
"required": ["name"], |
|
}, |
|
}, |
|
{ |
|
"name": "get_lab_member_detailed_info", |
|
"description": "This function is helpful when asked about the specific information of a lab member, such as what is the position or photo or related link of Bhaskar Krishnamachari.", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"name": { |
|
"type": "string", |
|
"description": "Name of a lab member, e.g. Jared Coleman", |
|
}, |
|
"detailed_info": { |
|
"type": "string", |
|
"description": "category of the information that the user want to ask about, e.g. position, title, homepage, link", |
|
} |
|
}, |
|
"required": ["name", "detailed_info"], |
|
}, |
|
}, |
|
{ |
|
"name": "get_publication_by_year", |
|
"description": "This function is helpful in finding all publication information given a specific year, e.g. what are the 2023 publications.", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"year": { |
|
"type": "string", |
|
"description": "The year of the publication, e.g. 2023", |
|
} |
|
}, |
|
"required": ["year"], |
|
}, |
|
}, |
|
{ |
|
"name": "get_pub_info", |
|
"description": "Get title, venue, authors, year and link to the publication articles by the title of the publication. This is helpful when asked about a publication, such as when \"Search and Rescue on the Line\" is published, or what publications are made in 2023. When input contains \"\", it's probably a publication", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"name": { |
|
"type": "string", |
|
"description": "Title of the publication, e.g. Search and Rescue on the Line\"", |
|
} |
|
}, |
|
"required": ["name"], |
|
}, |
|
}, |
|
{ |
|
"name": "get_pub_by_name", |
|
"description": "Get information (e.g. title, venue, authors, year and link to the publication articles) of all publications written by name of a specific member of the lab.", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"name": { |
|
"type": "string", |
|
"description": "Name of a lab member", |
|
} |
|
}, |
|
"required": ["name"], |
|
}, |
|
}, |
|
{ |
|
"name": "get_fuzz_name", |
|
"description": "When user mentions a name that is cannot be found, use this function to search for the most similar name.", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"name": { |
|
"type": "string", |
|
"description": "Name of a lab member", |
|
} |
|
}, |
|
"required": ["name"], |
|
}, |
|
}, |
|
{ |
|
"name": "semantic_search", |
|
"description": "does a semantic search over the documents based on query", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"query": { |
|
"type": "string", |
|
"description": "The query to search for", |
|
} |
|
}, |
|
"required": ["query"], |
|
} |
|
}, |
|
] |
|
|
|
OPENAI_AVAILABLE_FUNCTIONS = { |
|
"get_lab_member_info": get_lab_member_info, |
|
"get_pub_info": get_pub_info, |
|
"get_lab_member_detailed_info": get_lab_member_detailed_info, |
|
"get_publication_by_year": get_publication_by_year, |
|
"get_pub_by_name": get_pub_by_name, |
|
"get_fuzz_name": get_fuzz_name, |
|
"semantic_search": semantic_search, |
|
} |
|
|