Added new demo
This commit is contained in:
parent
692103a379
commit
770ba20f35
2 changed files with 86 additions and 0 deletions
84
multillm_chat_playground/multillm_playground.py
Normal file
84
multillm_chat_playground/multillm_playground.py
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
import streamlit as st
|
||||
from litellm import completion
|
||||
|
||||
# Set up the Streamlit app
|
||||
st.title("Multi-LLM Chat Playground")
|
||||
|
||||
# Get API keys from the user
|
||||
openai_api_key = st.text_input("Enter your OpenAI API Key:", type="password")
|
||||
anthropic_api_key = st.text_input("Enter your Anthropic API Key:", type="password")
|
||||
cohere_api_key = st.text_input("Enter your Cohere API Key:", type="password")
|
||||
|
||||
# Check if all API keys are provided
|
||||
if openai_api_key and anthropic_api_key and cohere_api_key:
|
||||
|
||||
# Create a text input for user messages
|
||||
user_input = st.text_input("Enter your message:")
|
||||
|
||||
if st.button("Send to All LLMs"):
|
||||
if user_input:
|
||||
messages = [{"role": "user", "content": user_input}]
|
||||
|
||||
# Create three columns for side-by-side display
|
||||
col1, col2, col3 = st.columns(3)
|
||||
|
||||
# GPT-4o response
|
||||
with col1:
|
||||
st.subheader("GPT-4o")
|
||||
try:
|
||||
gpt_response = completion(model="gpt-4o", messages=messages, api_key=openai_api_key)
|
||||
st.write(gpt_response.choices[0].message.content)
|
||||
except Exception as e:
|
||||
st.error(f"Error with GPT-4o: {str(e)}")
|
||||
|
||||
# Claude-3-sonnet response
|
||||
with col2:
|
||||
st.subheader("Claude 3.5 Sonnet")
|
||||
try:
|
||||
claude_response = completion(model="claude-3-5-sonnet-20240620", messages=messages, api_key=anthropic_api_key)
|
||||
st.write(claude_response.choices[0].message.content)
|
||||
except Exception as e:
|
||||
st.error(f"Error with Claude 3.5 Sonnet: {str(e)}")
|
||||
|
||||
# Cohere response
|
||||
with col3:
|
||||
st.subheader("Cohere")
|
||||
try:
|
||||
cohere_response = completion(model="command-r-plus", messages=messages, api_key=cohere_api_key)
|
||||
st.write(cohere_response.choices[0].message.content)
|
||||
except Exception as e:
|
||||
st.error(f"Error with Cohere: {str(e)}")
|
||||
|
||||
# Compare responses
|
||||
st.subheader("Response Comparison")
|
||||
st.write("You can see how the three models responded differently to the same input.")
|
||||
st.write("This demonstrates the ability to use multiple LLMs in a single application.")
|
||||
else:
|
||||
st.warning("Please enter a message.")
|
||||
else:
|
||||
st.warning("Please enter all API keys to use the chat.")
|
||||
|
||||
# Add some information about the app
|
||||
st.sidebar.title("About this app")
|
||||
|
||||
st.sidebar.write(
|
||||
"This app demonstrates the use of multiple Language Models (LLMs) "
|
||||
"in a single application using the LiteLLM library."
|
||||
)
|
||||
|
||||
st.sidebar.subheader("Key features:")
|
||||
st.sidebar.markdown(
|
||||
"""
|
||||
- Utilizes three different LLMs:
|
||||
- OpenAI's GPT-4o
|
||||
- Anthropic's Claude 3.5 Sonnet
|
||||
- Cohere's Command R Plus
|
||||
- Sends the same user input to all models
|
||||
- Displays responses side-by-side for easy comparison
|
||||
- Showcases the ability to use multiple LLMs in one application
|
||||
"""
|
||||
)
|
||||
|
||||
st.sidebar.write(
|
||||
"Try it out to see how different AI models respond to the same prompt!"
|
||||
)
|
||||
2
multillm_chat_playground/requirements.txt
Normal file
2
multillm_chat_playground/requirements.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
streamlit
|
||||
litellm
|
||||
Loading…
Reference in a new issue