strftime-ai / app.py
Neelesh
Refactor AI provider selection and update dependencies
02dbdf8
raw
history blame
No virus
1.69 kB
import os
from openai import OpenAI
import google.generativeai as genai
from anthropic import AI_PROMPT, HUMAN_PROMPT, Anthropic
import streamlit as st
from dotenv import load_dotenv
load_dotenv()
anthropic = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
st.set_page_config(page_title="strftime AI", page_icon="πŸ•˜")
with open("static/style.css") as f:
st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
st.header("strftime AI")
with st.sidebar:
provider = st.radio(
"Choose AI Provider", options=["Anthropic", "Google Gemini", "OpenAI"]
)
text = st.text_input("Enter datetime text eg. 2023-09-28T15:27:58Z")
if text:
prompt = (
"Convert the following datetime string into strftime format, "
"show the strftime string on top and then breakdown of % symbols: " + text
)
if provider == "Anthropic":
completion = anthropic.completions.create(
model="claude-2",
max_tokens_to_sample=300,
prompt=f"{HUMAN_PROMPT} {prompt}{AI_PROMPT}",
)
st.text(completion.completion)
elif provider == "Google Gemini":
model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(prompt)
st.text(response.text)
elif provider == "OpenAI":
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
st.text(chat_completion.choices[0].message.content)