Files
meta-llama--llama-cookbook/end-to-end-use-cases/whatsapp_llama_4_bot/README.md
T
2026-07-13 12:42:37 +08:00

118 lines
4.1 KiB
Markdown

# WhatsApp and Llama 4 APIs : Build your own multi-modal chatbot
Welcome to the WhatsApp Llama4 Bot ! This bot leverages the power of the Llama 4 APIs to provide intelligent and interactive responses to users via WhatsApp. It supports text, image, and audio interactions, making it a versatile tool for various use cases.
## Key Features
- **Text Interaction**: Users can send text messages to the bot, which are processed using the Llama4 APIs to generate accurate and contextually relevant responses.
- **Image Reasoning**: The bot can analyze images sent by users, providing insights, descriptions, or answers related to the image content.
- **Audio-to-Audio Interaction**: Users can send audio messages, which are transcribed to text, processed by the Llama4, and converted back to audio for a seamless voice-based interaction.
## Technical Overview
### Architecture
- **FastAPI**: The bot is built using FastAPI, a modern web framework for building APIs with Python.
- **Asynchronous Processing**: Utilizes `httpx` for making asynchronous HTTP requests to external APIs, ensuring efficient handling of media files.
- **Environment Configuration**: Uses `dotenv` to manage environment variables, keeping sensitive information like API keys secure.
Please refer below a high-level of architecture which explains the integrations :
![WhatsApp Llama4 Integration Diagram](../../src/docs/img/WhatApp_Llama4_integration.jpeg)
### Important Integrations
- **WhatsApp API**: Facilitates sending and receiving messages, images, and audio files.
- **Llama4 Model**: Provides advanced natural language processing capabilities for generating responses.
- **Groq API**: Handles speech-to-text (STT) and text-to-speech (TTS) conversions, enabling the audio-to-audio feature.
## Here are the steps to setup with WhatsApp Business Cloud API
First, open the [WhatsApp Business Platform Cloud API Get Started Guide](https://developers.facebook.com/docs/whatsapp/cloud-api/get-started#set-up-developer-assets) and follow the first four steps to:
1. Add the WhatsApp product to your business app;
2. Add a recipient number;
3. Send a test message;
4. Configure a webhook to receive real time HTTP notifications.
For the last step, you need to further follow the [Sample Callback URL for Webhooks Testing Guide](https://developers.facebook.com/docs/whatsapp/sample-app-endpoints) to create a free account on glitch.com to get your webhook's callback URL.
Now open the [Meta for Develops Apps](https://developers.facebook.com/apps/) page and select the WhatsApp business app and you should be able to copy the curl command (as shown in the App Dashboard - WhatsApp - API Setup - Step 2 below) and run the command on a Terminal to send a test message to your WhatsApp.
![](../../src/docs/img/whatsapp_dashboard.jpg)
Note down the "Temporary access token", "Phone number ID", and "a recipient phone number" in the API Setup page above, which will be used later.
## Setup and Installation
### Step 1: Clone the Repository
```bash
git clone https://github.com/meta-llama/llama-cookbook.git
cd llama-cookbook/end-to-end-use-cases/whatsapp-llama4-bot
```
### Step 2: Install Dependencies
Ensure you have Python installed, then run the following command to install the required packages:
```bash
pip install -r requirements.txt
```
### Step 3: Configure Environment Variables
Create a `.env` file in the project directory and add your API keys and other configuration details as follows:
```plaintext
ACCESS_TOKEN=your_whatsapp_access_token
WHATSAPP_API_URL=your_whatsapp_api_url
TOGETHER_API_KEY=your_llama4_api_key
GROQ_API_KEY=your_groq_api_key
PHONE_NUMBER_ID=your_phone_number_id
```
### Step 4: Run the Application
On your EC2 instance, run the following command on a Terminal to start the FastAPI server
```bash
uvicorn ec2_endpoints:app —host 0.0.0.0 —port 5000
```
Note: If you use Amazon EC2 as your web server, make sure you have port 5000 added to your EC2 instance's security group's inbound rules.
## License
This project is licensed under the MIT License.
## Contributing
We welcome contributions to enhance the capabilities of this bot. Please feel free to submit issues or pull requests.