This repository offers two key resources to help watsonx developers enhance their AI agents with web access:
-
A three step tutorial series for building research agents with web access and watsonx.
-
An end-to-end solution for building AI-enriched spreadsheets with real-time web access. The application combines Tavily's advanced search capabilities with IBM's watsonx.ai foundation models, specifically the latest
granite-3-2-8b-instruct
model, to transform your business spreadsheets with intelligent web-sourced information.
With this application, you can:
- 📊 Enrich spreadsheet cells with AI-generated content backed by live web data
- 🧠 Entity extraction and data processing with Granite LLMs
- 🔄 Process entire columns in batch for efficient data enhancement
- 📑 Access source citations for all web-sourced information
- 📂 Export your enriched data as CSV files for further use
Designed for ease of customization, you can extend this core implementation to:
- Integrate proprietary data sources
- Modify the agent architecture
- Configure different watsonx.ai foundation models
- Perform time-range or domain-filtered search using Tavily's advanced parameters.
This application requires API keys from the following services:
a. Create a .env
file in the project's root directory with your API keys:
TAVILY_API_KEY=<your API key>
WATSONX_API_KEY=<your API key>
WATSONX_PROJECT_ID=<your API key>
WATSONX_URL=<your data center key>
FOUNDATION_MODEL_ID=<watsonx.ai model id>
Note: FOUNDATION_MODEL_ID
environment variable is optional for FM selection from watsonx.ai platform. If left empty, the application will use ibm/granite-3-3-8b-instruct
by default.
b. Create a .env.development
file in the ui
directory with:
VITE_API_URL=http://localhost:8000
VITE_WS_URL=ws://localhost:8000
- Create a virtual environment and activate it:
python3.11 -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Install dependencies:
python3.11 -m pip install -r requirements.txt
- From the root of the project, run the backend server:
python app.py
- Alternatively, build and run the backend using Docker from the root of the project:
# Build the Docker image
docker build -t spreadsheet .
# Run the container
docker run -p 8000:8000 --env-file .env spreadsheet
- Navigate to the frontend directory:
cd ui
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Launch the app in your browser with http://localhost:5174/
This repository includes everything required to create a functional chatbot with web access:
📡 Backend (backend/
)
The core backend logic, powered by LangGraph:
graph.py
– Defines the agent architecture, state management, and processing nodes.
🌐 Frontend (ui/
)
Interactive React frontend for dynamic user interactions and spreadsheet responses.
app.py
– FastAPI server that handles API endpoint.
POST /api/enrich/batch
: endpoint that handles batched agent execution and spreadsheet population.
Feel free to submit issues and enhancement requests!
Have questions, feedback, or looking to build a custom solution? We'd love to hear from you!
- Email our team directly: