Spaces:
Sleeping
Sleeping
import openai | |
import os | |
def get_api_key(local = False): | |
if local: | |
from dotenv import load_dotenv | |
load_dotenv() | |
return os.getenv('OPEN_API_KEY') | |
def get_user_input(prompt): | |
return input(prompt) | |
def choose_cooperation_type(): | |
choice = get_user_input("Please choose the cooperation type: \n" | |
+"1. Sequential: human provide an answer first and then AI provide the answer based on it.\n" | |
+"2. Parallel: human and AI give answers seperately and then AI does the merge.\n") | |
if choice == '1': | |
return 'sequential' | |
elif choice == '2': | |
return 'parallel' | |
else: | |
print("Invalid choice. Please try again.") | |
return choose_cooperation_type() | |
def describe_task(): | |
task_description = get_user_input("Please describe your task: ") | |
if task_description.strip() == "": | |
# print("Task description cannot be empty. Please try again.") | |
# return describe_task() | |
task_description = "Write a poem about the moon in 3 lines." | |
return task_description | |
def generate_text_with_gpt(prompts, api_key = None): | |
"""Generate text using the GPT-3 model.""" | |
if api_key: | |
openai.api_key = api_key | |
try: | |
response = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", | |
messages=[ | |
{"role": "system", "content": "Please assist."}, | |
{"role": "user", "content": prompts} | |
] | |
) | |
return response['choices'][0]['message']['content'] | |
except Exception as e: | |
print(f"Error occurred when generating texts: {e}") | |
return "" | |
def merge_texts_parallel(task_description, human_text, ai_text, api_key = None): | |
prompt = f"Given the task as :{task_description}, there are two answers provided:\n" + \ | |
f"The first answer: {human_text}\nThe second answer: {ai_text}\n" + \ | |
f"Merge the two answers into one in a coherent way: " | |
return generate_text_with_gpt(prompt, api_key) | |
def merge_texts_sequential(task_description, human_text, api_key = None): | |
prompt = f"Given the task as :{task_description}, the human answer is: {human_text}\n" + \ | |
f"Provide an answer of your own but make sure it is coherent and should be based on the human answer: " | |
return generate_text_with_gpt(prompt, api_key) | |
def get_evaluation_with_gpt(task_description, text, api_key = None): | |
prompt = f"Given the task as :{task_description}, the answer provided is: {text}\n" + \ | |
f"Evaluate the answer and provide scores between 0 and 10,\n" + \ | |
f"where criteria for evaluation are correctness, relevance, novelty, fluency, and aesthetic Value:" | |
return generate_text_with_gpt(prompt, api_key) |