| license | title | sdk | emoji | colorFrom | colorTo | short_description |
|---|---|---|---|---|---|---|
apache-2.0 |
Chatbot |
streamlit |
🚀 |
red |
yellow |
LangGraph Chatbot |
This project is a Streamlit-based Agentic AI application that demonstrates graph-driven AI workflows using LangGraph and LangChain, powered by GROQ LLMs and integrated external tools.
It showcases how modern agentic systems can reason, route, and act across multiple capabilities instead of behaving like a single static chatbot.
The application includes three core use cases:
-
💬 Basic Chatbot
A simple conversational agent powered by an LLM. -
🌐 Chatbot with Web Tools
A tool-augmented agent capable of invoking web/search tools when required. -
📰 AI News Agent
Fetches recent AI-related news using Tavily, summarizes it with an LLM, and saves structured Markdown reports.
All core logic lives under src/langgraphagenticai/, while app.py bootstraps the Streamlit UI.
- 🐍 Python 3.13 (virtual environment in
chatbot_env/) - 🎛 Streamlit – interactive UI for chat and results
- 🔗 LangGraph + LangChain – graph-based agent orchestration
- ⚡ GROQ LLM – fast LLM inference backend
(configured insrc/langgraphagenticai/LLMS/groqllm.py) - 🔍 Tavily API – AI news search
🔐 Environment variables (GROQ, Tavily API keys) are loaded from .env.
Do not commit secrets.
-
app.py- Launches Streamlit
- Loads UI controls
- Reads user input and use-case selection
- Configures LLMs
- Builds and executes the LangGraph workflow
-
graph_builder.py- Defines graph structures per use case
- Compiles graphs into executable workflows
-
nodes/- Contains task-specific agent nodes
- Each node exposes callable methods used as graph steps
-
ui/streamlitui/- UI helpers for inputs and result rendering
- Single node:
BasicChatbotNode.process - Flow:
START → Chatbot → END
- Chatbot node + Tool node
- Conditional edges route between reasoning and tool execution
A structured three-step agentic workflow:
AINewsNode.fetch_news→ Tavily searchAINewsNode.summarize_news→ LLM summarizationAINewsNode.save_result→ Save Markdown to
AINews/<frequency>_summary.md
- 🎚 User input is collected via Streamlit controls (
LoadStreamlitUI) - 📄 Results are rendered using
DisplayResultStreamlit- Chat messages for chatbot modes
- Markdown previews for AI News summaries
- 🗂 AI News outputs are stored in the
AINews/directory
app.pysrc/langgraphagenticai/graph/graph_builder.pysrc/langgraphagenticai/nodes/ai_news_node.pysrc/langgraphagenticai/ui/streamlitui/display_result.py
1️⃣ Create and activate a virtual environment (optional if using chatbot_env/)
2️⃣ Install dependencies:
pip install -r requirements.txt3️⃣ Set required environment variables in .env
(example: GROQ and Tavily API keys)
4️⃣ Start the application:
streamlit run app.pyIf you encounter encoding issues on Windows:
$env:PYTHONUTF8=1
streamlit run app.py