Build a Simple AI Assistant with Streamlit & Claude API: A Step-by-Step Guide
Welcome to your first AI-powered assistant tutorial!
In this guide, you'll build a simple, interactive AI assistant using Streamlit and the Claude API. By the end, you'll have a fully functioning web app capable of answering questions using artificial intelligence—no fancy coding skills required. Let's dive in!
What You'll Need / Dependencies:
Here's what you'll need to follow along:
- Python (version 3.8 or higher): Download Python.
- Claude API Key: Sign up for a free API key from Anthropic.
- Streamlit: An easy-to-use framework to create web apps quickly.
- Anthropic Python library: To communicate with the Claude API.
Installing Dependencies:
Create a new folder, open your terminal (or command prompt), and navigate into it. Run these commands:
python -m venv venv
source venv/bin/activate # (macOS/Linux)
.\venv\Scripts\activate # (Windows)
pip install streamlit anthropic
Step-by-Step Instructions:
Step 1: Setting Up Your Project Structure
Create a new Python file named app.py
in your project folder. Your directory structure will look like this:
my-ai-assistant/
├── app.py
└── venv/
Step 2: Writing Your First Streamlit App
Open app.py
in your favorite text editor and add this basic Streamlit setup:
import streamlit as st
import anthropic
st.title("🤖 My Simple AI Assistant")
user_question = st.text_input("Ask a question:")
if st.button("Get Answer"):
if user_question:
st.write("Generating answer...")
else:
st.warning("Please enter a question first!")
Step 3: Connect to Claude API
Now let's connect your Streamlit app to the Claude API. First, create a new file called .streamlit/secrets.toml
and add your Claude API key:
[secrets]
CLAUDE_API_KEY = "your_api_key_here"
In app.py
, add the following code to communicate with Claude API:
import streamlit as st
import anthropic
# Load Claude API key
api_key = st.secrets["secrets"]["CLAUDE_API_KEY"]
# Set up Anthropic Client
client = anthropic.Anthropic(api_key=api_key)
st.title("🤖 My Simple AI Assistant")
user_question = st.text_input("Ask a question:")
if st.button("Get Answer"):
if user_question:
with st.spinner("Generating answer..."):
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=500,
messages=[
{"role": "user", "content": user_question}
]
)
answer = response.content[0].text
st.success("Answer generated!")
st.write(answer)
else:
st.warning("Please enter a question first!")
Step 4: Running Your App
Now you’re ready to test your assistant! In your terminal, run:
streamlit run app.py
Your browser will automatically open your Streamlit app at http://localhost:8501
. Enter a question and click the button—your AI assistant is live!
Practical Examples / Code:
Let's say you ask your assistant, "What is the capital of Japan?"
Your Claude-powered AI assistant might respond:
"The capital of Japan is Tokyo."
Try asking questions from different domains, like history, technology, or trivia, and explore Claude’s capabilities.
Best Practices & Tips:
- Secure your API keys: Always store API keys securely in Streamlit's
secrets.toml
. - Prompt clarity matters: Clearly phrased prompts get better, more accurate answers.
- Error handling: Always check if your user input is valid to avoid unnecessary API calls.
- Token limits: Be mindful of your API's token limit (Claude Haiku supports up to 4096 tokens).
Conclusion & Recap:
Congratulations! You've successfully built a simple yet powerful AI assistant web app using Streamlit and the Claude API. You've learned to:
- Set up a Streamlit app.
- Integrate and use Claude API.
- Manage secrets securely.
- Build a practical AI application from scratch.
Now you have a working foundation to build more sophisticated AI-powered apps.
What’s your favorite prompt for Claude so far? Share it in the comments!
Comments
Post a Comment