Spaces:
Sleeping
Sleeping
import gradio as gr | |
from neon_llm_chatgpt.chatgpt import ChatGPT | |
from neon_llm_palm2.palm2 import Palm2 | |
from neon_llm_gemini.gemini import Gemini | |
from neon_llm_claude.claude import Claude | |
from utils import convert_history, PersonaConverter | |
import os | |
role = "" | |
biography = "" | |
key = os.environ['OPENAI_API_KEY'] | |
config = { | |
"key": key, | |
"model": "gpt-3.5-turbo", | |
"role": role, | |
"context_depth": 3, | |
"max_tokens": 256, | |
} | |
chatgpt = ChatGPT(config) | |
key_google = os.environ['GOOGLE_API_KEY'] | |
key_path = "./vertex.json" | |
with open(key_path, "w") as json_file: | |
json_file.write(key_google) | |
config = { | |
"key_path": key_path, | |
"role": role, | |
"context_depth": 3, | |
"max_tokens": 256, | |
} | |
palm2 = Palm2(config) | |
config = { | |
"model": "gemini-pro", | |
"key_path": key_path, | |
"role": role, | |
"context_depth": 3, | |
"max_tokens": 1024, | |
} | |
gemini = Gemini(config) | |
key_anthropic = os.environ['ANTHROPIC_API_KEY'] | |
config = { | |
"key": key_anthropic, | |
"openai_key": key, | |
"model": "claude-2", | |
"role": role, | |
"context_depth": 3, | |
"max_tokens": 256, | |
} | |
claude = Claude(config) | |
model_choices = { | |
"openai": chatgpt, | |
"palm2": palm2, | |
"gemini": gemini, | |
"anthropic": claude, | |
} | |
model_choices_list = list(model_choices.keys()) | |
personaConverter = PersonaConverter() | |
preset_choices_list = list(personaConverter.personas.keys()) | |
figures_choices_list = list(personaConverter.historical_figures.keys()) | |
def ask(message, history, persona, model_name, preset, biography, figure, imaginary, short): | |
chat_history = convert_history(history) | |
model = model_choices[model_name] | |
persona_description = personaConverter(name = preset, figure = figure, | |
description = persona, biography = biography, | |
imaginary = imaginary, short = short) | |
responce = model.ask(message, chat_history, persona = {"description": persona_description}) | |
return responce | |
demo = gr.ChatInterface(ask, | |
additional_inputs=[ | |
gr.Textbox(role, label="Persona"), | |
gr.Dropdown(choices=model_choices_list, value=model_choices_list[0], label="Model"), | |
gr.Dropdown(choices=preset_choices_list, value=preset_choices_list[0], label="Preset"), | |
gr.Textbox(biography, label="Biography"), | |
gr.Dropdown(choices=figures_choices_list, value=figures_choices_list[0], label="Historical Figures"), | |
gr.Checkbox(value=False, label="Imaginary"), | |
gr.Checkbox(value=True, label="Short response"), | |
] | |
) | |
if __name__ == "__main__": | |
demo.queue().launch() |