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

Popular posts from this blog

Turn Prompts into Reusable Templates: Build Your AI Toolkit

Create Your First AI Assistant Using Prompt Engineering

Beginner's Guide to Prompt Engineering