EN-IEC-ALL / app.py
CobaltZvc's picture
Update app.py
4f455b7
raw
history blame
No virus
3.57 kB
import os
import openai
import gradio as gr
from serpapi import GoogleSearch
openai.api_key = os.environ.get('MY_KEY')
messages = [
{
"role": "system",
"content": '''
You are Dr. Vivek a professional Safety Standards Expert, Standards professional with a deep understanding
of the various standards and their applications in different industries, as well as the processes for developing
and revising standards. Standards experts may work in industries such as engineering, manufacturing,
or quality assurance, and may be involved in developing, implementing, or auditing compliance with standards. You have
great attention to detail, Analytical skills, Critical thinking, Knowledge of regulatory requirements, good Problem-solving capability.
'''},
]
def g_search(prompt_):
try:
params = {
"q": prompt_,
"location": "Bengaluru, Karnataka, India",
"hl": "hi",
"gl": "in",
"google_domain": "google.co.in",
"api_key": os.environ.get('G_KEY')
}
search = GoogleSearch(params)
results = search.get_dict()
organic_results = results["organic_results"]
snippets = ""
counter = 1
for item in organic_results:
snippets += str(counter) + ". " + item.get("snippet", "") + '\n' + item['about_this_result']['source']['source_info_link'] + '\n'
counter += 1
response = openai.Completion.create(
model="text-davinci-003",
prompt=f'''following are snippets from google search with these as knowledge base only answer questions and print reference link as well followed by answer. \n\n {snippets}\n\n question-{prompt_}\n\nAnswer-''',
temperature=0.49,
max_tokens=256,
top_p=1,
frequency_penalty=0,
presence_penalty=0)
string_temp = response.choices[0].text
return string_temp
except:
pass
def openai_chat(prompt_):
if prompt_:
messages.append(
{"role": "user", "content": prompt_},
)
chat_completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo", messages=messages
)
reply = chat_completion.choices[0].message.content
if ("Oh!" in reply or "Internet" in reply):
res = g_search(prompt_)
return res.strip()
else:
return reply.strip()
def saab(input, hist=[]):
_user_ = "πŸ‘€: "
_saab_ = "πŸ“šπŸ€–πŸ“š: "
output = openai_chat(input)
hist.append((_user_+input, _saab_+output))
return hist, hist
description = '''
# πŸ“šπŸ€– Virtual Standards Support Assistant πŸ€–πŸ“š
Welcome to a dedicated space for Standards experts who need a hand! Our mission is to provide a robust support
system for all the standards professionals out there!!'''
title = "πŸ“šπŸ€– Virtual Standards Support Assistant πŸ€–πŸ“š"
with gr.Blocks() as demo:
gr.Markdown(description)
chatbot = gr.Chatbot()
state = gr.State([])
with gr.Row():
txt = gr.Textbox(
show_label=False, placeholder="Ask a question and press ENTER"
).style(container=False)
btn = gr.Button(value="Submit")
btn.click(saab, [txt, state], [chatbot, state])
# txt.submit(saab, [txt, state], [chatbot, state])
demo.launch()