File size: 62,222 Bytes
f58a295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XiUyHP4T2g5F"
      },
      "source": [
        "# Install the dependicies\n",
        "Run the code below to install the depencies we need for our functions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "6LL4rxT6_W7h",
        "outputId": "700a185c-1a2a-4f5a-b841-2295ec556b02"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Requirement already satisfied: llama-index in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.4.33)\n",
            "Requirement already satisfied: dataclasses_json in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.5.7)\n",
            "Requirement already satisfied: langchain in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.0.117)\n",
            "Requirement already satisfied: numpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (1.24.2)\n",
            "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (8.2.2)\n",
            "Requirement already satisfied: openai>=0.26.4 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.27.2)\n",
            "Requirement already satisfied: pandas in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (1.5.3)\n",
            "Requirement already satisfied: tiktoken in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.3.2)\n",
            "Requirement already satisfied: requests>=2.20 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (2.28.2)\n",
            "Requirement already satisfied: tqdm in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (4.65.0)\n",
            "Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (3.8.4)\n",
            "Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (3.19.0)\n",
            "Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (1.5.1)\n",
            "Requirement already satisfied: typing-inspect>=0.4.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (0.8.0)\n",
            "Requirement already satisfied: PyYAML>=5.4.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (6.0)\n",
            "Requirement already satisfied: SQLAlchemy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (1.2.19)\n",
            "Requirement already satisfied: pydantic<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (1.10.6)\n",
            "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->llama-index) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->llama-index) (2022.7.1)\n",
            "Requirement already satisfied: regex>=2022.1.18 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tiktoken->llama-index) (2022.10.31)\n",
            "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (22.2.0)\n",
            "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (3.1.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.8.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.3.1)\n",
            "Requirement already satisfied: packaging>=17.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from marshmallow<4.0.0,>=3.3.0->dataclasses_json->llama-index) (23.0)\n",
            "Requirement already satisfied: typing-extensions>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pydantic<2,>=1->langchain->llama-index) (4.5.0)\n",
            "Requirement already satisfied: six>=1.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.1->pandas->llama-index) (1.16.0)\n",
            "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (3.4)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (2022.12.7)\n",
            "Requirement already satisfied: mypy-extensions>=0.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from typing-inspect>=0.4.0->dataclasses_json->llama-index) (1.0.0)\n",
            "Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tqdm->openai>=0.26.4->llama-index) (0.4.6)\n",
            "Note: you may need to restart the kernel to use updated packages.\n",
            "Requirement already satisfied: langchain in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.0.117)\n",
            "Requirement already satisfied: PyYAML>=5.4.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (6.0)\n",
            "Requirement already satisfied: SQLAlchemy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.2.19)\n",
            "Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (3.8.4)\n",
            "Requirement already satisfied: dataclasses-json<0.6.0,>=0.5.7 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (0.5.7)\n",
            "Requirement already satisfied: numpy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.24.2)\n",
            "Requirement already satisfied: pydantic<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.10.6)\n",
            "Requirement already satisfied: requests<3,>=2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (2.28.2)\n",
            "Requirement already satisfied: tenacity<9.0.0,>=8.1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (8.2.2)\n",
            "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (22.2.0)\n",
            "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (3.1.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.8.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)\n",
            "Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (3.19.0)\n",
            "Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (1.5.1)\n",
            "Requirement already satisfied: typing-inspect>=0.4.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (0.8.0)\n",
            "Requirement already satisfied: typing-extensions>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pydantic<2,>=1->langchain) (4.5.0)\n",
            "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (3.4)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (2022.12.7)\n",
            "Requirement already satisfied: packaging>=17.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from marshmallow<4.0.0,>=3.3.0->dataclasses-json<0.6.0,>=0.5.7->langchain) (23.0)\n",
            "Requirement already satisfied: mypy-extensions>=0.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from typing-inspect>=0.4.0->dataclasses-json<0.6.0,>=0.5.7->langchain) (1.0.0)\n",
            "Note: you may need to restart the kernel to use updated packages.\n",
            "Requirement already satisfied: gradio in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (3.23.0)\n",
            "Requirement already satisfied: aiofiles in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (23.1.0)\n",
            "Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.8.4)\n",
            "Requirement already satisfied: altair>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (4.2.2)\n",
            "Requirement already satisfied: fastapi in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.95.0)\n",
            "Requirement already satisfied: ffmpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.3.0)\n",
            "Requirement already satisfied: fsspec in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2023.3.0)\n",
            "Requirement already satisfied: httpx in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.23.3)\n",
            "Requirement already satisfied: huggingface-hub in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.13.3)\n",
            "Requirement already satisfied: jinja2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.1.2)\n",
            "Requirement already satisfied: markdown-it-py[linkify]>=2.0.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.2.0)\n",
            "Requirement already satisfied: markupsafe in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.1.2)\n",
            "Requirement already satisfied: matplotlib in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.7.1)\n",
            "Requirement already satisfied: mdit-py-plugins<=0.3.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.3.3)\n",
            "Requirement already satisfied: numpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.24.2)\n",
            "Requirement already satisfied: orjson in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.8.8)\n",
            "Requirement already satisfied: pandas in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.5.3)\n",
            "Requirement already satisfied: pillow in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (9.4.0)\n",
            "Requirement already satisfied: pydantic in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.10.6)\n",
            "Requirement already satisfied: pydub in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.25.1)\n",
            "Requirement already satisfied: python-multipart in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.0.6)\n",
            "Requirement already satisfied: pyyaml in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (6.0)\n",
            "Requirement already satisfied: requests in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.28.2)\n",
            "Requirement already satisfied: semantic-version in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.10.0)\n",
            "Requirement already satisfied: typing-extensions in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (4.5.0)\n",
            "Requirement already satisfied: uvicorn in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.21.1)\n",
            "Requirement already satisfied: websockets>=10.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (10.4)\n",
            "Requirement already satisfied: entrypoints in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (0.4)\n",
            "Requirement already satisfied: jsonschema>=3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (4.17.3)\n",
            "Requirement already satisfied: toolz in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (0.12.0)\n",
            "Requirement already satisfied: filelock in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (3.10.0)\n",
            "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (4.65.0)\n",
            "Requirement already satisfied: packaging>=20.9 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (23.0)\n",
            "Requirement already satisfied: mdurl~=0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from markdown-it-py[linkify]>=2.0.0->gradio) (0.1.2)\n",
            "Requirement already satisfied: linkify-it-py<3,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from markdown-it-py[linkify]>=2.0.0->gradio) (2.0.0)\n",
            "Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->gradio) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->gradio) (2022.7.1)\n",
            "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (22.2.0)\n",
            "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (3.1.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.8.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.3.1)\n",
            "Requirement already satisfied: starlette<0.27.0,>=0.26.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from fastapi->gradio) (0.26.1)\n",
            "Requirement already satisfied: certifi in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (2022.12.7)\n",
            "Requirement already satisfied: httpcore<0.17.0,>=0.15.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (0.16.3)\n",
            "Requirement already satisfied: rfc3986[idna2008]<2,>=1.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (1.5.0)\n",
            "Requirement already satisfied: sniffio in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (1.3.0)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (1.0.7)\n",
            "Requirement already satisfied: cycler>=0.10 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (0.11.0)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (4.39.2)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (1.4.4)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (3.0.9)\n",
            "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests->gradio) (3.4)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests->gradio) (1.26.15)\n",
            "Requirement already satisfied: click>=7.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from uvicorn->gradio) (8.1.3)\n",
            "Requirement already satisfied: h11>=0.8 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from uvicorn->gradio) (0.14.0)\n",
            "Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from click>=7.0->uvicorn->gradio) (0.4.6)\n",
            "Requirement already satisfied: anyio<5.0,>=3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpcore<0.17.0,>=0.15.0->httpx->gradio) (3.6.2)\n",
            "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from jsonschema>=3.0->altair>=4.2.0->gradio) (0.19.3)\n",
            "Requirement already satisfied: uc-micro-py in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from linkify-it-py<3,>=1->markdown-it-py[linkify]>=2.0.0->gradio) (1.0.1)\n",
            "Requirement already satisfied: six>=1.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.1->pandas->gradio) (1.16.0)\n",
            "Note: you may need to restart the kernel to use updated packages.\n",
            "Requirement already satisfied: openai in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.27.2)\n",
            "Requirement already satisfied: requests>=2.20 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (2.28.2)\n",
            "Requirement already satisfied: tqdm in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (4.65.0)\n",
            "Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (3.8.4)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (3.1.0)\n",
            "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (3.4)\n",
            "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (1.26.15)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (2022.12.7)\n",
            "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (22.2.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.8.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.3.3)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.3.1)\n",
            "Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tqdm->openai) (0.4.6)\n",
            "Note: you may need to restart the kernel to use updated packages.\n"
          ]
        }
      ],
      "source": [
        "%pip install llama-index\n",
        "%pip install langchain\n",
        "%pip install gradio\n",
        "%pip install openai"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "FbuYetOy25eM"
      },
      "source": [
        "# Define the functions\n",
        "The following code defines the functions we need to construct the index and query it"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "id": "UelAqQgk_yIt"
      },
      "outputs": [
        {
          "ename": "AttributeError",
          "evalue": "module 'time' has no attribute 'clock'",
          "output_type": "error",
          "traceback": [
            "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
            "Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m \u001b[39mimport\u001b[39;00m SimpleDirectoryReader, GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n\u001b[0;32m      2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAI\n\u001b[0;32m      3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39msys\u001b[39;00m\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\__init__.py:18\u001b[0m\n\u001b[0;32m     15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39membeddings\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mopenai\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIEmbedding\n\u001b[0;32m     17\u001b[0m \u001b[39m# structured\u001b[39;00m\n\u001b[1;32m---> 18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcommon\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstruct_store\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDocumentContextBuilder\n\u001b[0;32m     19\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mempty\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTEmptyIndex\n\u001b[0;32m     21\u001b[0m \u001b[39m# indices\u001b[39;00m\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\__init__.py:4\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"LlamaIndex data structures.\"\"\"\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39m# indices\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTKeywordTableIndex\n\u001b[0;32m      5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mrake_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTRAKEKeywordTableIndex\n\u001b[0;32m      6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msimple_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTSimpleKeywordTableIndex\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\keyword_table\\__init__.py:4\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Keyword Table Index Data Structures.\"\"\"\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39m# indices\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTKeywordTableIndex\n\u001b[0;32m      5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mrake_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTRAKEKeywordTableIndex\n\u001b[0;32m      6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msimple_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTSimpleKeywordTableIndex\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\keyword_table\\base.py:16\u001b[0m\n\u001b[0;32m     14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39masync_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m run_async_tasks\n\u001b[0;32m     15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m \u001b[39mimport\u001b[39;00m KeywordTable\n\u001b[1;32m---> 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m DOCUMENTS_INPUT, BaseGPTIndex\n\u001b[0;32m     17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m \u001b[39mimport\u001b[39;00m extract_keywords_given_response\n\u001b[0;32m     18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseGPTIndexQuery\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\base.py:23\u001b[0m\n\u001b[0;32m     21\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39membeddings\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mopenai\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIEmbedding\n\u001b[0;32m     22\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mnode_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m get_nodes_from_document\n\u001b[1;32m---> 23\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompt_helper\u001b[39;00m \u001b[39mimport\u001b[39;00m PromptHelper\n\u001b[0;32m     24\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseGPTIndexQuery\n\u001b[0;32m     25\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery_runner\u001b[39;00m \u001b[39mimport\u001b[39;00m QueryRunner\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\prompt_helper.py:12\u001b[0m\n\u001b[0;32m     10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mconstants\u001b[39;00m \u001b[39mimport\u001b[39;00m MAX_CHUNK_OVERLAP\n\u001b[0;32m     11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m \u001b[39mimport\u001b[39;00m Node\n\u001b[1;32m---> 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlangchain_helpers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchain_wrapper\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMPredictor\n\u001b[0;32m     13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlangchain_helpers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtext_splitter\u001b[39;00m \u001b[39mimport\u001b[39;00m TokenTextSplitter\n\u001b[0;32m     14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m Prompt\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\langchain_helpers\\chain_wrapper.py:6\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Wrapper functions around an LLM chain.\"\"\"\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39m# NOTE: moved to llama_index/llm_predictor/base.py\u001b[39;00m\n\u001b[0;32m      4\u001b[0m \u001b[39m# NOTE: this is for backwards compatibility\u001b[39;00m\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m (  \u001b[39m# noqa: F401\u001b[39;00m\n\u001b[0;32m      7\u001b[0m     LLMChain,\n\u001b[0;32m      8\u001b[0m     LLMMetadata,\n\u001b[0;32m      9\u001b[0m     LLMPredictor,\n\u001b[0;32m     10\u001b[0m )\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\llm_predictor\\__init__.py:4\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Init params.\"\"\"\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39m# TODO: move LLMPredictor to this folder\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMPredictor\n\u001b[0;32m      5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstructured\u001b[39;00m \u001b[39mimport\u001b[39;00m StructuredLLMPredictor\n\u001b[0;32m      7\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[0;32m      8\u001b[0m     \u001b[39m\"\u001b[39m\u001b[39mLLMPredictor\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m      9\u001b[0m     \u001b[39m\"\u001b[39m\u001b[39mStructuredLLMPredictor\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m     10\u001b[0m ]\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\llm_predictor\\base.py:9\u001b[0m\n\u001b[0;32m      6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Generator, Optional, Protocol, Tuple\n\u001b[0;32m      8\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenai\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m \u001b[39mimport\u001b[39;00m Cohere, LLMChain, OpenAI\n\u001b[0;32m     10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchat_models\u001b[39;00m \u001b[39mimport\u001b[39;00m ChatOpenAI\n\u001b[0;32m     11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m \u001b[39mimport\u001b[39;00m AI21\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\__init__.py:5\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Main entrypoint into package.\"\"\"\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Optional\n\u001b[1;32m----> 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m \u001b[39mimport\u001b[39;00m MRKLChain, ReActChain, SelfAskWithSearchChain\n\u001b[0;32m      6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcache\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCache\n\u001b[0;32m      7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m \u001b[39mimport\u001b[39;00m (\n\u001b[0;32m      8\u001b[0m     set_default_callback_manager,\n\u001b[0;32m      9\u001b[0m     set_handler,\n\u001b[0;32m     10\u001b[0m     set_tracing_callback_manager,\n\u001b[0;32m     11\u001b[0m )\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\__init__.py:3\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Interface for agents.\"\"\"\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m Agent, AgentExecutor\n\u001b[1;32m----> 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m \u001b[39mimport\u001b[39;00m (\n\u001b[0;32m      4\u001b[0m     create_csv_agent,\n\u001b[0;32m      5\u001b[0m     create_json_agent,\n\u001b[0;32m      6\u001b[0m     create_openapi_agent,\n\u001b[0;32m      7\u001b[0m     create_pandas_dataframe_agent,\n\u001b[0;32m      8\u001b[0m     create_sql_agent,\n\u001b[0;32m      9\u001b[0m     create_vectorstore_agent,\n\u001b[0;32m     10\u001b[0m     create_vectorstore_router_agent,\n\u001b[0;32m     11\u001b[0m )\n\u001b[0;32m     12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mconversational\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m ConversationalAgent\n\u001b[0;32m     13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39minitialize\u001b[39;00m \u001b[39mimport\u001b[39;00m initialize_agent\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\__init__.py:3\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m\"\"\"Agent toolkits.\"\"\"\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcsv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_csv_agent\n\u001b[0;32m      4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjson\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_json_agent\n\u001b[0;32m      5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjson\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtoolkit\u001b[39;00m \u001b[39mimport\u001b[39;00m JsonToolkit\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\csv\\base.py:5\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Optional\n\u001b[0;32m      4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m AgentExecutor\n\u001b[1;32m----> 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpandas\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_pandas_dataframe_agent\n\u001b[0;32m      6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLLM\n\u001b[0;32m      9\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mcreate_csv_agent\u001b[39m(\n\u001b[0;32m     10\u001b[0m     llm: BaseLLM, path: \u001b[39mstr\u001b[39m, pandas_kwargs: Optional[\u001b[39mdict\u001b[39m] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs: Any\n\u001b[0;32m     11\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m AgentExecutor:\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\pandas\\base.py:6\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m AgentExecutor\n\u001b[0;32m      5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpandas\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompt\u001b[39;00m \u001b[39mimport\u001b[39;00m PREFIX, SUFFIX\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmrkl\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m ZeroShotAgent\n\u001b[0;32m      7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCallbackManager\n\u001b[0;32m      8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMChain\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\mrkl\\base.py:11\u001b[0m\n\u001b[0;32m      9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtools\u001b[39;00m \u001b[39mimport\u001b[39;00m Tool\n\u001b[0;32m     10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCallbackManager\n\u001b[1;32m---> 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMChain\n\u001b[0;32m     12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLLM\n\u001b[0;32m     13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m \u001b[39mimport\u001b[39;00m PromptTemplate\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\__init__.py:15\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_requests\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMRequestsChain\n\u001b[0;32m     14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_summarization_checker\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMSummarizationCheckerChain\n\u001b[1;32m---> 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mloading\u001b[39;00m \u001b[39mimport\u001b[39;00m load_chain\n\u001b[0;32m     16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmapreduce\u001b[39;00m \u001b[39mimport\u001b[39;00m MapReduceChain\n\u001b[0;32m     17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmoderation\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIModerationChain\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\loading.py:23\u001b[0m\n\u001b[0;32m     21\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mqa_with_sources\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m QAWithSourcesChain\n\u001b[0;32m     22\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mqa_with_sources\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mvector_db\u001b[39;00m \u001b[39mimport\u001b[39;00m VectorDBQAWithSourcesChain\n\u001b[1;32m---> 23\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msql_database\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDatabaseChain\n\u001b[0;32m     24\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mvector_db_qa\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m VectorDBQA\n\u001b[0;32m     25\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mloading\u001b[39;00m \u001b[39mimport\u001b[39;00m load_llm, load_llm_from_config\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\sql_database\\base.py:13\u001b[0m\n\u001b[0;32m     11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BasePromptTemplate\n\u001b[0;32m     12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mschema\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLanguageModel\n\u001b[1;32m---> 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msql_database\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDatabase\n\u001b[0;32m     16\u001b[0m \u001b[39mclass\u001b[39;00m \u001b[39mSQLDatabaseChain\u001b[39;00m(Chain, BaseModel):\n\u001b[0;32m     17\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Chain for interacting with SQL Database.\u001b[39;00m\n\u001b[0;32m     18\u001b[0m \n\u001b[0;32m     19\u001b[0m \u001b[39m    Example:\u001b[39;00m\n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m     24\u001b[0m \u001b[39m            db_chain = SQLDatabaseChain(llm=OpenAI(), database=db)\u001b[39;00m\n\u001b[0;32m     25\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\sql_database.py:6\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m__future__\u001b[39;00m \u001b[39mimport\u001b[39;00m annotations\n\u001b[0;32m      4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Iterable, List, Optional\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m \u001b[39mimport\u001b[39;00m MetaData, create_engine, inspect, select, text\n\u001b[0;32m      7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mengine\u001b[39;00m \u001b[39mimport\u001b[39;00m Engine\n\u001b[0;32m      8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mexc\u001b[39;00m \u001b[39mimport\u001b[39;00m ProgrammingError, SQLAlchemyError\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\__init__.py:8\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[39m# sqlalchemy/__init__.py\u001b[39;00m\n\u001b[0;32m      2\u001b[0m \u001b[39m# Copyright (C) 2005-2019 the SQLAlchemy authors and contributors\u001b[39;00m\n\u001b[0;32m      3\u001b[0m \u001b[39m# <see AUTHORS file>\u001b[39;00m\n\u001b[0;32m      4\u001b[0m \u001b[39m#\u001b[39;00m\n\u001b[0;32m      5\u001b[0m \u001b[39m# This module is part of SQLAlchemy and is released under\u001b[39;00m\n\u001b[0;32m      6\u001b[0m \u001b[39m# the MIT License: http://www.opensource.org/licenses/mit-license.php\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m util \u001b[39mas\u001b[39;00m _util  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m      9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39minspection\u001b[39;00m \u001b[39mimport\u001b[39;00m inspect  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m     10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mschema\u001b[39;00m \u001b[39mimport\u001b[39;00m BLANK_SCHEMA  \u001b[39m# noqa\u001b[39;00m\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\__init__.py:14\u001b[0m\n\u001b[0;32m     11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mfunctools\u001b[39;00m \u001b[39mimport\u001b[39;00m partial  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m     12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mfunctools\u001b[39;00m \u001b[39mimport\u001b[39;00m update_wrapper  \u001b[39m# noqa\u001b[39;00m\n\u001b[1;32m---> 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m coerce_generator_arg  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m     15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m collections_abc  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m     16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m column_dict  \u001b[39m# noqa\u001b[39;00m\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\_collections.py:16\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mtypes\u001b[39;00m\n\u001b[0;32m     14\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mweakref\u001b[39;00m\n\u001b[1;32m---> 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m binary_types\n\u001b[0;32m     17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m collections_abc\n\u001b[0;32m     18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m itertools_filterfalse\n",
            "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\compat.py:264\u001b[0m\n\u001b[0;32m    261\u001b[0m     \u001b[39mfrom\u001b[39;00m \u001b[39minspect\u001b[39;00m \u001b[39mimport\u001b[39;00m formatargspec \u001b[39mas\u001b[39;00m inspect_formatargspec  \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m    263\u001b[0m \u001b[39mif\u001b[39;00m win32 \u001b[39mor\u001b[39;00m jython:\n\u001b[1;32m--> 264\u001b[0m     time_func \u001b[39m=\u001b[39m time\u001b[39m.\u001b[39;49mclock\n\u001b[0;32m    265\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m    266\u001b[0m     time_func \u001b[39m=\u001b[39m time\u001b[39m.\u001b[39mtime\n",
            "\u001b[1;31mAttributeError\u001b[0m: module 'time' has no attribute 'clock'"
          ]
        }
      ],
      "source": [
        "from llama_index import SimpleDirectoryReader, GPTListIndex, readers, GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n",
        "from langchain import OpenAI\n",
        "import sys\n",
        "import os\n",
        "from IPython.display import Markdown, display\n",
        "\n",
        "def construct_index(directory_path):\n",
        "    # set maximum input size\n",
        "    max_input_size = 4096\n",
        "    # set number of output tokens\n",
        "    num_outputs = 2000\n",
        "    # set maximum chunk overlap\n",
        "    max_chunk_overlap = 20\n",
        "    # set chunk size limit\n",
        "    chunk_size_limit = 600\n",
        "\n",
        "    # define LLM\n",
        "    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name=\"gpt-3.5-turbo\", max_tokens=num_outputs))\n",
        "    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)\n",
        "\n",
        "    documents = SimpleDirectoryReader(directory_path).load_data()\n",
        "\n",
        "    index = GPTSimpleVectorIndex(\n",
        "        documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper\n",
        "    )\n",
        "\n",
        "    index.save_to_disk('index.json')\n",
        "\n",
        "    return index\n",
        "\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "27L4VAQiTNlc"
      },
      "outputs": [],
      "source": [
        "def ask_ai():\n",
        "    index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
        "    while True: \n",
        "        query = input(\"What do you want to ask? \")\n",
        "        response = index.query(query, response_mode=\"compact\")\n",
        "        display(Markdown(f\"Response: <b>{response.response}</b>\"))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Vz1jp33jGumu"
      },
      "source": [
        "# Set OpenAI API Key\n",
        "You need an OPENAI API key to be able to run this code.\n",
        "\n",
        "If you don't have one yet, get it by [signing up](https://platform.openai.com/overview). Then click your account icon on the top right of the screen and select \"View API Keys\". Create an API key.\n",
        "\n",
        "Then run the code below and paste your API key into the text input."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RoJHE4fsAT3w",
        "outputId": "b4870c80-9c24-48b0-80cd-6b9dc5b9f8a6"
      },
      "outputs": [],
      "source": [
        "os.environ[\"OPENAI_API_KEY\"] = input(\"Paste your OpenAI key here and hit enter:\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZVrddlAL4I_v"
      },
      "source": [
        "#Construct an index\n",
        "Now we are ready to construct the index. This will take every file in the folder 'data', split it into chunks, and embed it with OpenAI's embeddings API.\n",
        "\n",
        "**Notice:** running this code will cost you credits on your OpenAPI account ($0.02 for every 1,000 tokens). If you've just set up your account, the free credits that you have should be more than enough for this experiment."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "kCYTE2EqBB7O",
        "outputId": "136bd773-5974-42e7-aae3-fa0c4d06b213"
      },
      "outputs": [],
      "source": [
        "construct_index(\"C:\\Users\\Ewok\\OneDrive - FAST National University\\Desktop\\Custom chatbot\\context.data\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 311
        },
        "id": "s_uwsPGEIGsb",
        "outputId": "160d9bfc-70ed-43fa-8adb-b8089f601883"
      },
      "outputs": [],
      "source": [
        "ask_ai()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "import tkinter as tk\n",
        "from llama_index import GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n",
        "from langchain import OpenAI\n",
        "from IPython.display import Markdown, display\n",
        "\n",
        "# Define the ask_ai() function\n",
        "def ask_ai(question):\n",
        "    index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
        "    response = index.query(question, response_mode=\"compact\")\n",
        "    return response.response\n",
        "\n",
        "# Define the GUI\n",
        "class ChatBotGUI:\n",
        "    def __init__(self, master):\n",
        "        self.master = master\n",
        "        master.title(\"Chat Bot\")\n",
        "\n",
        "        # Create a label and an entry for the question\n",
        "        self.label = tk.Label(master, text=\"Ask me anything:\")\n",
        "        self.label.pack()\n",
        "\n",
        "        self.entry = tk.Entry(master)\n",
        "        self.entry.pack()\n",
        "\n",
        "        # Create a button to submit the question\n",
        "        self.button = tk.Button(master, text=\"Submit\", command=self.submit_question)\n",
        "        self.button.pack()\n",
        "\n",
        "        # Create a text box to display the response\n",
        "        self.textbox = tk.Text(master)\n",
        "        self.textbox.pack()\n",
        "\n",
        "    def submit_question(self):\n",
        "        question = self.entry.get()\n",
        "        response = ask_ai(question)\n",
        "        self.textbox.insert(tk.END, \"You: \" + question + \"\\n\")\n",
        "        self.textbox.insert(tk.END, \"Bot: \" + response + \"\\n\\n\")\n",
        "        self.entry.delete(0, tk.END)\n",
        "\n",
        "# Create an instance of the GUI and start the main loop\n",
        "root = tk.Tk()\n",
        "chatbot_gui = ChatBotGUI(root)\n",
        "root.mainloop()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": [
        "import gradio as gr\n",
        "\n",
        "def ask_ai(query):\n",
        "    index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
        "    response = index.query(query, response_mode=\"compact\")\n",
        "    return response.response\n",
        "\n",
        "gr.Interface(\n",
        "    fn=ask_ai, \n",
        "    inputs=gr.inputs.Textbox(label=\"Input your question here\"), \n",
        "    outputs=gr.outputs.Textbox(label=\"Response\")\n",
        ").launch(share=True)\n"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.11.0"
    },
    "vscode": {
      "interpreter": {
        "hash": "837f538c543f9b2d2992c09ff501c8e7dd16af4ba72a49bea9ce11c22c2825e5"
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}