Commit a8018af 1 parent 9844b3b commit a8018af Copy full SHA for a8018af
File tree 5 files changed +200
-13
lines changed
cookbook/examples/apps/whatsapp_chat_agent
5 files changed +200
-13
lines changed Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change @@ -18,10 +18,10 @@ This is a WhatsApp chatbot that provides stock market insights and financial adv
18
18
pip install -r requirements.txt
19
19
```
20
20
21
- 2 . ** Set up ngrok**
21
+ 2 . ** Set up ngrok (for development testing only) **
22
22
23
23
- 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
25
25
- Authenticate ngrok with your token:
26
26
``` bash
27
27
ngrok config add-authtoken YOUR_AUTH_TOKEN
@@ -40,7 +40,10 @@ pip install -r requirements.txt
40
40
` ` ` env
41
41
WHATSAPP_ACCESS_TOKEN=your_whatsapp_access_token
42
42
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
43
45
WHATSAPP_VERIFY_TOKEN=your_custom_verify_token # Can be any string you choose
46
+ WHATSAPP_WEBHOOK_URL=your_webhook_url
44
47
OPENAI_API_KEY=your_openai_api_key
45
48
` ` `
46
49
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change 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
Original file line number Diff line number Diff line change @@ -192,7 +192,7 @@ def send_template_message_sync(
192
192
}
193
193
194
194
if components :
195
- data ["template" ]["components" ] = components # type: ignore[index]
195
+ data ["template" ]["components" ] = components # type: ignore[index]
196
196
197
197
try :
198
198
response = self ._send_message_sync (data )
You can’t perform that action at this time.
0 commit comments