| import gradio as gr |
| import openai |
| import json |
| from factool import Factool |
| import os |
|
|
| def chat_with_gpt(api_key, model, message): |
| openai.api_key = api_key |
| response = openai.ChatCompletion.create( |
| model=model, |
| messages=[ |
| {"role": "system", "content": "You are a helpful assistant."}, |
| {"role": "user", "content": message}, |
| ] |
| ) |
| return response.choices[0].message['content'] |
|
|
| def fact_check(api_key, model, message, response): |
| os.environ['OPENAI_API_KEY'] = api_key |
| factool_instance = Factool("model") |
| inputs = [ |
| { |
| "prompt": message, |
| "response": response, |
| "category": "kbqa", |
| "search_type": "online", |
| }, |
| ] |
| response_list = factool_instance.run(inputs) |
| return response_list |
|
|
| def process_input(api_key, model, message): |
| response = chat_with_gpt(api_key, model, message) |
| return fact_check(api_key, model, message, response) |
|
|
| iface = gr.Interface(fn=process_input, |
| inputs=["text", gr.inputs.Radio(["gpt-3.5-turbo", "gpt-4"], label="Model"), "text"], |
| outputs=gr.outputs.JSON()) |
| iface.launch() |
|
|
|
|