fastllmapi / llm_func.py
alessandroptsn's picture
Update llm_func.py
e3a2236 verified
import time
import json
import requests
from bs4 import BeautifulSoup
def llm_normal(question,llm):
print(question)
start = time.time()
answer = llm.create_chat_completion(
messages= [
{
"role": "user",
"content": question
}
]
)
end = time.time()
total_time = end - start
print(answer["choices"][0]["message"]['content'])
print(f"Execution time: {total_time:.2f} seconds")
return answer["choices"][0]["message"]['content']
def llm_agent(question,llm):
print(question)
start = time.time()
answer = llm.create_chat_completion(
messages= [
{
"role": "system",
"content": """
You are a json formatter assistant,
specialized in converting user-supplied raw text into json format
"""
},{
"role": "user",
"content": question+"""
format in JSON: """
}
],response_format = {"type":"json_object"}
)
end = time.time()
total_time = end - start
try:
args = json.loads(answer["choices"][0]["message"]['content'])
print(args)
print(f"Execution time: {total_time:.2f} seconds")
except:
print(answer["choices"][0]["message"]['content'])
print(f"Execution time: {total_time:.2f} seconds")
return answer["choices"][0]["message"]['content']
def name_age(name,age):
return str(name) + ' - '+str(age)
def llm_functioncalling(question,llm):
print(question)
start = time.time()
answer = llm.create_chat_completion(
messages = [
{
"role": "system",
"content": """
You are a json formatter assistant,
specialized in converting user-supplied raw text into json format
"""
},{
"role": "user",
"content": question +"""
format in JSON: """
}
],
tools=[{
"type": "function",
"function": {
"name": "name_age",
"description": """return the name and age, if not informed,
set name None and age 0""",
"parameters": {
"type": "object",
"title": "return the name and age",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"age": {
"title": "Age",
"type": "integer"
}
},
"required": [ "name", "age" ]
}
}
}
],response_format = {"type":"json_object"},
)
end = time.time()
total_time = end - start
try:
args = json.loads(answer["choices"][0]["message"]['content'])
print(name_age(args['name'],args['age']))
print(f"Execution time: {total_time:.2f} seconds")
return name_age(args['name'],args['age'])
except:
print(answer["choices"][0]["message"]['content'])
print(f"Execution time: {total_time:.2f} seconds.")
return answer["choices"][0]["message"]['content']
def search(question):
payload = {'q': question}
request = requests.get('https://www.bing.com/search?&cc=US', params=payload,
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'
})
soup = BeautifulSoup(request.text, 'html.parser')
try:
text = 'context : '+ str(soup.text.split('·')[1].split('https://')[0])
return text
except:
return ' '
def llm_search(question,llm):
print(question)
start = time.time()
messages = [
{
"role": "system",
"content": """You are a search assistant, gives helpful,
detailed, and polite answers to the user's questions
"""
},
{
"role": "user",
"content": question+"""
"""+search(question)
},
]
answer = llm.create_chat_completion(
messages = messages
)
end = time.time()
total_time = end - start
print(answer["choices"][0]["message"]['content'])
print(f"Execution time: {total_time:.2f} seconds")
return answer["choices"][0]["message"]['content']