Skip to content

Commit a8018af

Browse files
committed
Update WhatsApp chat agent README and requirements
- Clarify ngrok setup instructions as development testing only - Add missing environment variable for WhatsApp recipient phone number - Regenerate requirements.txt with updated dependencies - Minor formatting and clarity improvements in documentation
1 parent 9844b3b commit a8018af

File tree

5 files changed

+200
-13
lines changed

5 files changed

+200
-13
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
############################################################################
4+
# Generate requirements.txt from requirements.in
5+
############################################################################
6+
7+
echo "Generating requirements.txt"
8+
9+
CURR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10+
11+
UV_CUSTOM_COMPILE_COMMAND="./generate_requirements.sh" \
12+
uv pip compile ${CURR_DIR}/requirements.in --no-cache --upgrade -o ${CURR_DIR}/requirements.txt

cookbook/examples/apps/whatsapp_chat_agent/readme.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ This is a WhatsApp chatbot that provides stock market insights and financial adv
1818
pip install -r requirements.txt
1919
```
2020

21-
2. **Set up ngrok**
21+
2. **Set up ngrok (for development testing only)**
2222

2323
- Download and install ngrok from https://ngrok.com/download
24-
- Sign up for a free account and get your authtoken
24+
- Sign up for a free account and get your auth-token
2525
- Authenticate ngrok with your token:
2626
```bash
2727
ngrok config add-authtoken YOUR_AUTH_TOKEN
@@ -40,7 +40,10 @@ pip install -r requirements.txt
4040
```env
4141
WHATSAPP_ACCESS_TOKEN=your_whatsapp_access_token
4242
WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id
43+
WHATSAPP_RECIPIENT_WAID=phone_number_with_country_code # e.g. +1234567890
44+
WHATSAPP_WEBHOOK_URL=your_webhook_url
4345
WHATSAPP_VERIFY_TOKEN=your_custom_verify_token # Can be any string you choose
46+
WHATSAPP_WEBHOOK_URL=your_webhook_url
4447
OPENAI_API_KEY=your_openai_api_key
4548
```
4649

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
fastapi
2+
uvicorn
3+
python-dotenv
4+
requests
5+
yfinance
6+
openai
7+
agno
8+
python-multipart
9+
aiohttp
10+
SQLAlchemy
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,172 @@
1-
fastapi>=0.68.0
2-
uvicorn>=0.15.0
3-
python-dotenv>=0.19.0
4-
requests>=2.26.0
5-
yfinance>=0.1.63
6-
openai>=1.0.0
7-
agno>=0.1.0
8-
python-multipart>=0.0.5
9-
aiohttp>=3.8.0
10-
SQLAlchemy>=1.4.0
1+
# This file was autogenerated by uv via the following command:
2+
# ./generate_requirements.sh
3+
agno==1.1.9
4+
# via -r requirements.in
5+
aiohappyeyeballs==2.5.0
6+
# via aiohttp
7+
aiohttp==3.11.13
8+
# via -r requirements.in
9+
aiosignal==1.3.2
10+
# via aiohttp
11+
annotated-types==0.7.0
12+
# via pydantic
13+
anyio==4.8.0
14+
# via
15+
# httpx
16+
# openai
17+
# starlette
18+
attrs==25.1.0
19+
# via aiohttp
20+
beautifulsoup4==4.13.3
21+
# via yfinance
22+
certifi==2025.1.31
23+
# via
24+
# httpcore
25+
# httpx
26+
# requests
27+
charset-normalizer==3.4.1
28+
# via requests
29+
click==8.1.8
30+
# via
31+
# typer
32+
# uvicorn
33+
distro==1.9.0
34+
# via openai
35+
docstring-parser==0.16
36+
# via agno
37+
fastapi==0.115.11
38+
# via -r requirements.in
39+
frozendict==2.4.6
40+
# via yfinance
41+
frozenlist==1.5.0
42+
# via
43+
# aiohttp
44+
# aiosignal
45+
gitdb==4.0.12
46+
# via gitpython
47+
gitpython==3.1.44
48+
# via agno
49+
h11==0.14.0
50+
# via
51+
# httpcore
52+
# uvicorn
53+
httpcore==1.0.7
54+
# via httpx
55+
httpx==0.28.1
56+
# via
57+
# agno
58+
# openai
59+
idna==3.10
60+
# via
61+
# anyio
62+
# httpx
63+
# requests
64+
# yarl
65+
jiter==0.8.2
66+
# via openai
67+
markdown-it-py==3.0.0
68+
# via rich
69+
mdurl==0.1.2
70+
# via markdown-it-py
71+
multidict==6.1.0
72+
# via
73+
# aiohttp
74+
# yarl
75+
multitasking==0.0.11
76+
# via yfinance
77+
numpy==2.2.3
78+
# via
79+
# pandas
80+
# yfinance
81+
openai==1.65.5
82+
# via -r requirements.in
83+
pandas==2.2.3
84+
# via yfinance
85+
peewee==3.17.9
86+
# via yfinance
87+
platformdirs==4.3.6
88+
# via yfinance
89+
propcache==0.3.0
90+
# via
91+
# aiohttp
92+
# yarl
93+
pydantic==2.10.6
94+
# via
95+
# agno
96+
# fastapi
97+
# openai
98+
# pydantic-settings
99+
pydantic-core==2.27.2
100+
# via pydantic
101+
pydantic-settings==2.8.1
102+
# via agno
103+
pygments==2.19.1
104+
# via rich
105+
python-dateutil==2.9.0.post0
106+
# via pandas
107+
python-dotenv==1.0.1
108+
# via
109+
# -r requirements.in
110+
# agno
111+
# pydantic-settings
112+
python-multipart==0.0.20
113+
# via
114+
# -r requirements.in
115+
# agno
116+
pytz==2025.1
117+
# via
118+
# pandas
119+
# yfinance
120+
pyyaml==6.0.2
121+
# via agno
122+
requests==2.32.3
123+
# via
124+
# -r requirements.in
125+
# yfinance
126+
rich==13.9.4
127+
# via
128+
# agno
129+
# typer
130+
shellingham==1.5.4
131+
# via typer
132+
six==1.17.0
133+
# via python-dateutil
134+
smmap==5.0.2
135+
# via gitdb
136+
sniffio==1.3.1
137+
# via
138+
# anyio
139+
# openai
140+
soupsieve==2.6
141+
# via beautifulsoup4
142+
sqlalchemy==2.0.38
143+
# via -r requirements.in
144+
starlette==0.46.1
145+
# via fastapi
146+
tomli==2.2.1
147+
# via agno
148+
tqdm==4.67.1
149+
# via openai
150+
typer==0.15.2
151+
# via agno
152+
typing-extensions==4.12.2
153+
# via
154+
# agno
155+
# anyio
156+
# beautifulsoup4
157+
# fastapi
158+
# openai
159+
# pydantic
160+
# pydantic-core
161+
# sqlalchemy
162+
# typer
163+
tzdata==2025.1
164+
# via pandas
165+
urllib3==2.3.0
166+
# via requests
167+
uvicorn==0.34.0
168+
# via -r requirements.in
169+
yarl==1.18.3
170+
# via aiohttp
171+
yfinance==0.2.54
172+
# via -r requirements.in

libs/agno/agno/tools/whatsapp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def send_template_message_sync(
192192
}
193193

194194
if components:
195-
data["template"]["components"] = components # type: ignore[index]
195+
data["template"]["components"] = components # type: ignore[index]
196196

197197
try:
198198
response = self._send_message_sync(data)

0 commit comments

Comments
 (0)