ai-parrot 0.15.16__cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ai-parrot might be problematic. Click here for more details.

Files changed (417) hide show
  1. ai_parrot-0.15.16.dist-info/METADATA +447 -0
  2. ai_parrot-0.15.16.dist-info/RECORD +417 -0
  3. ai_parrot-0.15.16.dist-info/WHEEL +7 -0
  4. ai_parrot-0.15.16.dist-info/licenses/LICENSE +21 -0
  5. ai_parrot-0.15.16.dist-info/top_level.txt +6 -0
  6. crew-builder/.prettierrc +15 -0
  7. crew-builder/QUICKSTART.md +259 -0
  8. crew-builder/README.md +113 -0
  9. crew-builder/env.example +17 -0
  10. crew-builder/jsconfig.json +14 -0
  11. crew-builder/package-lock.json +4242 -0
  12. crew-builder/package.json +37 -0
  13. crew-builder/scripts/postinstall/apply-patches.mjs +260 -0
  14. crew-builder/src/app.css +18 -0
  15. crew-builder/src/app.d.ts +13 -0
  16. crew-builder/src/app.html +12 -0
  17. crew-builder/src/components/LoadingSpinner.svelte +64 -0
  18. crew-builder/src/components/ThemeSwitcher.svelte +149 -0
  19. crew-builder/src/components/index.js +7 -0
  20. crew-builder/src/lib/api/client.ts +56 -0
  21. crew-builder/src/lib/api/crew/crew.ts +136 -0
  22. crew-builder/src/lib/api/index.ts +3 -0
  23. crew-builder/src/lib/api/o365/auth.ts +65 -0
  24. crew-builder/src/lib/auth/auth.ts +54 -0
  25. crew-builder/src/lib/components/AgentNode.svelte +43 -0
  26. crew-builder/src/lib/components/ConfigPanel.svelte +278 -0
  27. crew-builder/src/lib/components/JsonTreeNode.svelte +76 -0
  28. crew-builder/src/lib/components/JsonViewer.svelte +24 -0
  29. crew-builder/src/lib/components/MarkdownEditor.svelte +48 -0
  30. crew-builder/src/lib/components/ThemeToggle.svelte +36 -0
  31. crew-builder/src/lib/components/Toast.svelte +67 -0
  32. crew-builder/src/lib/components/Toolbar.svelte +157 -0
  33. crew-builder/src/lib/components/index.ts +10 -0
  34. crew-builder/src/lib/stores/auth.svelte.ts +158 -0
  35. crew-builder/src/lib/stores/crewStore.ts +369 -0
  36. crew-builder/src/lib/stores/theme.svelte.js +145 -0
  37. crew-builder/src/lib/stores/toast.svelte.ts +69 -0
  38. crew-builder/src/lib/utils/markdown.ts +122 -0
  39. crew-builder/src/routes/+layout.svelte +20 -0
  40. crew-builder/src/routes/+page.svelte +510 -0
  41. crew-builder/src/routes/builder/+page.svelte +204 -0
  42. crew-builder/src/routes/crew/ask/+page.svelte +1052 -0
  43. crew-builder/src/routes/crew/ask/+page.ts +1 -0
  44. crew-builder/src/routes/integrations/o365/+page.svelte +304 -0
  45. crew-builder/src/routes/login/+page.svelte +197 -0
  46. crew-builder/static/README.md +1 -0
  47. crew-builder/svelte.config.js +11 -0
  48. crew-builder/tailwind.config.ts +53 -0
  49. crew-builder/tsconfig.json +3 -0
  50. crew-builder/vite.config.ts +10 -0
  51. mcp_servers/calculator_server.py +309 -0
  52. parrot/__init__.py +39 -0
  53. parrot/__pycache__/__init__.cpython-310.pyc +0 -0
  54. parrot/__pycache__/__init__.cpython-311.pyc +0 -0
  55. parrot/__pycache__/version.cpython-310.pyc +0 -0
  56. parrot/__pycache__/version.cpython-311.pyc +0 -0
  57. parrot/_version.py +34 -0
  58. parrot/agents/__init__.py +28 -0
  59. parrot/bots/__init__.py +13 -0
  60. parrot/bots/abstract.py +2851 -0
  61. parrot/bots/agent.py +1040 -0
  62. parrot/bots/basic.py +9 -0
  63. parrot/bots/chatbot.py +669 -0
  64. parrot/bots/data.py +963 -0
  65. parrot/bots/database/__init__.py +5 -0
  66. parrot/bots/database/abstract.py +3065 -0
  67. parrot/bots/database/cache.py +286 -0
  68. parrot/bots/database/models.py +468 -0
  69. parrot/bots/database/prompts.py +154 -0
  70. parrot/bots/database/retries.py +98 -0
  71. parrot/bots/database/router.py +271 -0
  72. parrot/bots/database/sql.py +42 -0
  73. parrot/bots/database/tools.py +389 -0
  74. parrot/bots/db/__init__.py +4 -0
  75. parrot/bots/db/abstract.py +493 -0
  76. parrot/bots/db/cache.py +85 -0
  77. parrot/bots/db/elastic.py +1014 -0
  78. parrot/bots/db/influx.py +898 -0
  79. parrot/bots/db/mock.py +96 -0
  80. parrot/bots/db/multi.py +783 -0
  81. parrot/bots/db/prompts.py +183 -0
  82. parrot/bots/db/sql.py +1087 -0
  83. parrot/bots/db/tools.py +169 -0
  84. parrot/bots/document.py +680 -0
  85. parrot/bots/hrbot.py +15 -0
  86. parrot/bots/kb.py +161 -0
  87. parrot/bots/mcp.py +36 -0
  88. parrot/bots/orchestration/README.md +463 -0
  89. parrot/bots/orchestration/__init__.py +1 -0
  90. parrot/bots/orchestration/agent.py +127 -0
  91. parrot/bots/orchestration/crew.py +3329 -0
  92. parrot/bots/orchestration/fsm.py +1179 -0
  93. parrot/bots/orchestration/hr.py +434 -0
  94. parrot/bots/orchestration/storage/__init__.py +4 -0
  95. parrot/bots/orchestration/storage/memory.py +100 -0
  96. parrot/bots/orchestration/storage/mixin.py +120 -0
  97. parrot/bots/orchestration/verify.py +202 -0
  98. parrot/bots/product.py +204 -0
  99. parrot/bots/prompts/__init__.py +91 -0
  100. parrot/bots/prompts/agents.py +150 -0
  101. parrot/bots/prompts/data.py +216 -0
  102. parrot/bots/prompts/output_generation.py +40 -0
  103. parrot/bots/scraper/__init__.py +3 -0
  104. parrot/bots/scraper/models.py +122 -0
  105. parrot/bots/scraper/scraper.py +1173 -0
  106. parrot/bots/scraper/templates.py +115 -0
  107. parrot/bots/webdev.py +81 -0
  108. parrot/clients/__init__.py +42 -0
  109. parrot/clients/base.py +1356 -0
  110. parrot/clients/claude.py +1090 -0
  111. parrot/clients/google.py +4097 -0
  112. parrot/clients/gpt.py +1832 -0
  113. parrot/clients/groq.py +916 -0
  114. parrot/clients/hf.py +586 -0
  115. parrot/clients/vertex.py +862 -0
  116. parrot/conf.py +290 -0
  117. parrot/embeddings/__init__.py +5 -0
  118. parrot/embeddings/base.py +143 -0
  119. parrot/embeddings/google.py +52 -0
  120. parrot/embeddings/huggingface.py +67 -0
  121. parrot/embeddings/processor.py +88 -0
  122. parrot/exceptions.c +13868 -0
  123. parrot/exceptions.cpython-311-x86_64-linux-gnu.so +0 -0
  124. parrot/exceptions.pxd +22 -0
  125. parrot/exceptions.pxi +15 -0
  126. parrot/exceptions.pyx +44 -0
  127. parrot/generators/__init__.py +29 -0
  128. parrot/generators/base.py +200 -0
  129. parrot/generators/html.py +293 -0
  130. parrot/generators/react.py +205 -0
  131. parrot/generators/streamlit.py +203 -0
  132. parrot/generators/template.py +105 -0
  133. parrot/handlers/__init__.py +4 -0
  134. parrot/handlers/agent.py +798 -0
  135. parrot/handlers/agents/__init__.py +1 -0
  136. parrot/handlers/agents/abstract.py +900 -0
  137. parrot/handlers/agents/manager.py +296 -0
  138. parrot/handlers/bots.py +338 -0
  139. parrot/handlers/chat.py +914 -0
  140. parrot/handlers/creation.sql +192 -0
  141. parrot/handlers/crew/ARCHITECTURE.md +362 -0
  142. parrot/handlers/crew/__init__.py +0 -0
  143. parrot/handlers/crew/handler.py +801 -0
  144. parrot/handlers/crew/models.py +229 -0
  145. parrot/handlers/jobs/__init__.py +10 -0
  146. parrot/handlers/jobs/job.py +384 -0
  147. parrot/handlers/jobs/mixin.py +627 -0
  148. parrot/handlers/jobs/models.py +115 -0
  149. parrot/handlers/jobs/worker.py +31 -0
  150. parrot/handlers/models.py +596 -0
  151. parrot/handlers/o365_auth.py +105 -0
  152. parrot/handlers/stream.py +261 -0
  153. parrot/interfaces/__init__.py +6 -0
  154. parrot/interfaces/credentials.py +113 -0
  155. parrot/interfaces/database.py +27 -0
  156. parrot/interfaces/google.py +1121 -0
  157. parrot/interfaces/hierarchy.py +507 -0
  158. parrot/interfaces/http.py +651 -0
  159. parrot/interfaces/images/__init__.py +0 -0
  160. parrot/interfaces/images/plugins/__init__.py +24 -0
  161. parrot/interfaces/images/plugins/abstract.py +58 -0
  162. parrot/interfaces/images/plugins/analisys.py +148 -0
  163. parrot/interfaces/images/plugins/classify.py +150 -0
  164. parrot/interfaces/images/plugins/classifybase.py +182 -0
  165. parrot/interfaces/images/plugins/detect.py +150 -0
  166. parrot/interfaces/images/plugins/exif.py +1103 -0
  167. parrot/interfaces/images/plugins/hash.py +52 -0
  168. parrot/interfaces/images/plugins/vision.py +104 -0
  169. parrot/interfaces/images/plugins/yolo.py +66 -0
  170. parrot/interfaces/images/plugins/zerodetect.py +197 -0
  171. parrot/interfaces/o365.py +978 -0
  172. parrot/interfaces/onedrive.py +822 -0
  173. parrot/interfaces/sharepoint.py +1435 -0
  174. parrot/interfaces/soap.py +257 -0
  175. parrot/loaders/__init__.py +57 -0
  176. parrot/loaders/abstract.py +1120 -0
  177. parrot/loaders/audio.py +199 -0
  178. parrot/loaders/basepdf.py +53 -0
  179. parrot/loaders/basevideo.py +1454 -0
  180. parrot/loaders/csv.py +409 -0
  181. parrot/loaders/docx.py +116 -0
  182. parrot/loaders/epubloader.py +316 -0
  183. parrot/loaders/excel.py +199 -0
  184. parrot/loaders/files/__init__.py +0 -0
  185. parrot/loaders/files/abstract.py +39 -0
  186. parrot/loaders/files/html.py +26 -0
  187. parrot/loaders/files/text.py +63 -0
  188. parrot/loaders/html.py +152 -0
  189. parrot/loaders/markdown.py +442 -0
  190. parrot/loaders/pdf.py +373 -0
  191. parrot/loaders/pdfmark.py +320 -0
  192. parrot/loaders/pdftables.py +506 -0
  193. parrot/loaders/ppt.py +476 -0
  194. parrot/loaders/qa.py +63 -0
  195. parrot/loaders/splitters/__init__.py +10 -0
  196. parrot/loaders/splitters/base.py +140 -0
  197. parrot/loaders/splitters/md.py +228 -0
  198. parrot/loaders/splitters/token.py +143 -0
  199. parrot/loaders/txt.py +26 -0
  200. parrot/loaders/video.py +89 -0
  201. parrot/loaders/videolocal.py +218 -0
  202. parrot/loaders/videounderstanding.py +377 -0
  203. parrot/loaders/vimeo.py +167 -0
  204. parrot/loaders/web.py +599 -0
  205. parrot/loaders/youtube.py +504 -0
  206. parrot/manager/__init__.py +5 -0
  207. parrot/manager/manager.py +639 -0
  208. parrot/mcp/__init__.py +21 -0
  209. parrot/mcp/integration.py +962 -0
  210. parrot/mcp/oauth.py +242 -0
  211. parrot/mcp/server.py +575 -0
  212. parrot/memory/__init__.py +14 -0
  213. parrot/memory/abstract.py +209 -0
  214. parrot/memory/cache.py +175 -0
  215. parrot/memory/core.py +555 -0
  216. parrot/memory/file.py +153 -0
  217. parrot/memory/mem.py +131 -0
  218. parrot/memory/redis.py +613 -0
  219. parrot/models/__init__.py +46 -0
  220. parrot/models/basic.py +94 -0
  221. parrot/models/compliance.py +208 -0
  222. parrot/models/crew.py +395 -0
  223. parrot/models/detections.py +654 -0
  224. parrot/models/generation.py +85 -0
  225. parrot/models/google.py +222 -0
  226. parrot/models/groq.py +24 -0
  227. parrot/models/openai.py +30 -0
  228. parrot/models/outputs.py +275 -0
  229. parrot/models/responses.py +871 -0
  230. parrot/notifications/__init__.py +743 -0
  231. parrot/openapi/__init__.py +3 -0
  232. parrot/openapi/components.yaml +641 -0
  233. parrot/openapi/config.py +322 -0
  234. parrot/outputs/__init__.py +32 -0
  235. parrot/outputs/formats/__init__.py +60 -0
  236. parrot/outputs/formats/altair.py +119 -0
  237. parrot/outputs/formats/base.py +330 -0
  238. parrot/outputs/formats/charts.py +158 -0
  239. parrot/outputs/formats/html.py +572 -0
  240. parrot/outputs/formats/jinja2.py +46 -0
  241. parrot/outputs/formats/json.py +38 -0
  242. parrot/outputs/formats/map.py +102 -0
  243. parrot/outputs/formats/markdown.py +261 -0
  244. parrot/outputs/formats/template_report.py +143 -0
  245. parrot/outputs/formats/terminal.py +98 -0
  246. parrot/outputs/formats/yaml.py +61 -0
  247. parrot/outputs/formatter.py +121 -0
  248. parrot/outputs/renderer.py +236 -0
  249. parrot/outputs/templates/__init__.py +95 -0
  250. parrot/pipelines/__init__.py +0 -0
  251. parrot/pipelines/abstract.py +210 -0
  252. parrot/pipelines/detector.py +124 -0
  253. parrot/pipelines/models.py +90 -0
  254. parrot/pipelines/planogram.py +3002 -0
  255. parrot/pipelines/table.sql +97 -0
  256. parrot/plugins/__init__.py +94 -0
  257. parrot/plugins/importer.py +79 -0
  258. parrot/py.typed +0 -0
  259. parrot/registry/__init__.py +17 -0
  260. parrot/registry/registry.py +545 -0
  261. parrot/scheduler/__init__.py +1189 -0
  262. parrot/scheduler/models.py +60 -0
  263. parrot/security/__init__.py +16 -0
  264. parrot/security/prompt_injection.py +268 -0
  265. parrot/security/security_events.sql +25 -0
  266. parrot/services/__init__.py +1 -0
  267. parrot/services/o365_remote_auth.py +235 -0
  268. parrot/stores/__init__.py +7 -0
  269. parrot/stores/abstract.py +352 -0
  270. parrot/stores/arango.py +1090 -0
  271. parrot/stores/bigquery.py +1377 -0
  272. parrot/stores/cache.py +106 -0
  273. parrot/stores/empty.py +10 -0
  274. parrot/stores/faiss_store.py +1042 -0
  275. parrot/stores/kb/__init__.py +7 -0
  276. parrot/stores/kb/abstract.py +62 -0
  277. parrot/stores/kb/cache.py +165 -0
  278. parrot/stores/kb/doc.py +325 -0
  279. parrot/stores/kb/prompt.py +28 -0
  280. parrot/stores/kb/redis.py +659 -0
  281. parrot/stores/kb/store.py +111 -0
  282. parrot/stores/kb/user.py +374 -0
  283. parrot/stores/models.py +37 -0
  284. parrot/stores/pgvector.py +3 -0
  285. parrot/stores/postgres.py +2853 -0
  286. parrot/stores/utils/__init__.py +0 -0
  287. parrot/stores/utils/chunking.py +197 -0
  288. parrot/telemetry/__init__.py +3 -0
  289. parrot/telemetry/mixin.py +111 -0
  290. parrot/template/__init__.py +3 -0
  291. parrot/template/engine.py +259 -0
  292. parrot/tools/__init__.py +38 -0
  293. parrot/tools/abstract.py +559 -0
  294. parrot/tools/agent.py +363 -0
  295. parrot/tools/arangodbsearch.py +537 -0
  296. parrot/tools/arxiv_tool.py +188 -0
  297. parrot/tools/calculator/__init__.py +3 -0
  298. parrot/tools/calculator/operations/__init__.py +38 -0
  299. parrot/tools/calculator/operations/calculus.py +80 -0
  300. parrot/tools/calculator/operations/statistics.py +76 -0
  301. parrot/tools/calculator/tool.py +150 -0
  302. parrot/tools/codeinterpreter/__init__.py +127 -0
  303. parrot/tools/codeinterpreter/executor.py +371 -0
  304. parrot/tools/codeinterpreter/internals.py +473 -0
  305. parrot/tools/codeinterpreter/models.py +643 -0
  306. parrot/tools/codeinterpreter/prompts.py +224 -0
  307. parrot/tools/codeinterpreter/tool.py +664 -0
  308. parrot/tools/company_info/__init__.py +6 -0
  309. parrot/tools/company_info/tool.py +1138 -0
  310. parrot/tools/correlationanalysis.py +437 -0
  311. parrot/tools/databasequery.py +938 -0
  312. parrot/tools/db.py +758 -0
  313. parrot/tools/ddgo.py +370 -0
  314. parrot/tools/decorators.py +270 -0
  315. parrot/tools/dftohtml.py +282 -0
  316. parrot/tools/document.py +549 -0
  317. parrot/tools/edareport.py +368 -0
  318. parrot/tools/epson/__init__.py +96 -0
  319. parrot/tools/excel.py +683 -0
  320. parrot/tools/file/__init__.py +13 -0
  321. parrot/tools/file/abstract.py +76 -0
  322. parrot/tools/file/gcs.py +378 -0
  323. parrot/tools/file/local.py +284 -0
  324. parrot/tools/file/s3.py +511 -0
  325. parrot/tools/file/tmp.py +309 -0
  326. parrot/tools/file/tool.py +501 -0
  327. parrot/tools/file_reader.py +129 -0
  328. parrot/tools/flowtask/__init__.py +1 -0
  329. parrot/tools/flowtask/component.py +370 -0
  330. parrot/tools/gittoolkit.py +508 -0
  331. parrot/tools/google/__init__.py +18 -0
  332. parrot/tools/google/base.py +169 -0
  333. parrot/tools/google/tools.py +1251 -0
  334. parrot/tools/googlelocation.py +5 -0
  335. parrot/tools/googleroutes.py +5 -0
  336. parrot/tools/googlesearch.py +5 -0
  337. parrot/tools/googlesitesearch.py +5 -0
  338. parrot/tools/googlevoice.py +2 -0
  339. parrot/tools/gvoice.py +695 -0
  340. parrot/tools/ibisworld/README.md +225 -0
  341. parrot/tools/ibisworld/__init__.py +11 -0
  342. parrot/tools/ibisworld/tool.py +366 -0
  343. parrot/tools/jiratoolkit.py +604 -0
  344. parrot/tools/manager.py +908 -0
  345. parrot/tools/math.py +152 -0
  346. parrot/tools/msteams.py +1621 -0
  347. parrot/tools/msword.py +635 -0
  348. parrot/tools/multidb.py +580 -0
  349. parrot/tools/networkninja.py +167 -0
  350. parrot/tools/nextstop/__init__.py +4 -0
  351. parrot/tools/nextstop/base.py +286 -0
  352. parrot/tools/nextstop/employee.py +733 -0
  353. parrot/tools/nextstop/store.py +462 -0
  354. parrot/tools/notification.py +435 -0
  355. parrot/tools/o365/__init__.py +42 -0
  356. parrot/tools/o365/base.py +295 -0
  357. parrot/tools/o365/bundle.py +522 -0
  358. parrot/tools/o365/events.py +554 -0
  359. parrot/tools/o365/mail.py +992 -0
  360. parrot/tools/o365/onedrive.py +497 -0
  361. parrot/tools/o365/sharepoint.py +641 -0
  362. parrot/tools/openapi_toolkit.py +783 -0
  363. parrot/tools/openweather.py +527 -0
  364. parrot/tools/pdfprint.py +1001 -0
  365. parrot/tools/powerbi.py +534 -0
  366. parrot/tools/powerpoint.py +1113 -0
  367. parrot/tools/products/__init__.py +246 -0
  368. parrot/tools/pythonpandas.py +555 -0
  369. parrot/tools/pythonrepl.py +898 -0
  370. parrot/tools/qsource.py +432 -0
  371. parrot/tools/querytoolkit.py +395 -0
  372. parrot/tools/quickeda.py +827 -0
  373. parrot/tools/resttool.py +553 -0
  374. parrot/tools/retail/__init__.py +0 -0
  375. parrot/tools/retail/bby.py +528 -0
  376. parrot/tools/sassie/__init__.py +352 -0
  377. parrot/tools/scraping/__init__.py +7 -0
  378. parrot/tools/scraping/docs/select.md +466 -0
  379. parrot/tools/scraping/documentation.md +1193 -0
  380. parrot/tools/scraping/driver.py +436 -0
  381. parrot/tools/scraping/models.py +576 -0
  382. parrot/tools/scraping/options.py +85 -0
  383. parrot/tools/scraping/orchestrator.py +517 -0
  384. parrot/tools/scraping/readme.md +740 -0
  385. parrot/tools/scraping/tool.py +3079 -0
  386. parrot/tools/seasonaldetection.py +642 -0
  387. parrot/tools/shell_tool/__init__.py +5 -0
  388. parrot/tools/shell_tool/actions.py +408 -0
  389. parrot/tools/shell_tool/engine.py +155 -0
  390. parrot/tools/shell_tool/models.py +322 -0
  391. parrot/tools/shell_tool/tool.py +442 -0
  392. parrot/tools/textfile.py +59 -0
  393. parrot/tools/toolkit.py +277 -0
  394. parrot/tools/webapp_tool.py +187 -0
  395. parrot/tools/workday/__init__.py +6 -0
  396. parrot/tools/workday/models.py +1129 -0
  397. parrot/tools/workday/tool.py +944 -0
  398. parrot/tools/yfinance_tool.py +306 -0
  399. parrot/tools/zipcode.py +217 -0
  400. parrot/utils/__init__.py +2 -0
  401. parrot/utils/helpers.py +73 -0
  402. parrot/utils/parsers/__init__.py +5 -0
  403. parrot/utils/parsers/toml.c +12078 -0
  404. parrot/utils/parsers/toml.cpython-311-x86_64-linux-gnu.so +0 -0
  405. parrot/utils/parsers/toml.pyx +21 -0
  406. parrot/utils/toml.py +11 -0
  407. parrot/utils/types.cpp +20936 -0
  408. parrot/utils/types.cpython-311-x86_64-linux-gnu.so +0 -0
  409. parrot/utils/types.pyx +213 -0
  410. parrot/utils/uv.py +11 -0
  411. parrot/version.py +10 -0
  412. parrot/yaml-rs/Cargo.lock +350 -0
  413. parrot/yaml-rs/Cargo.toml +19 -0
  414. parrot/yaml-rs/pyproject.toml +19 -0
  415. parrot/yaml-rs/python/yaml_rs/__init__.py +81 -0
  416. parrot/yaml-rs/src/lib.rs +222 -0
  417. requirements/requirements-dev.txt +21 -0
@@ -0,0 +1,447 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-parrot
3
+ Version: 0.15.16
4
+ Summary: Chatbot services for Navigator, based on Langchain
5
+ Author-email: Jesus Lara <jesuslara@phenobarbital.info>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/phenobarbital/ai-parrot
8
+ Project-URL: Source, https://github.com/phenobarbital/ai-parrot
9
+ Project-URL: Tracker, https://github.com/phenobarbital/ai-parrot/issues
10
+ Project-URL: Documentation, https://github.com/phenobarbital/ai-parrot/
11
+ Project-URL: Funding, https://paypal.me/phenobarbital
12
+ Project-URL: Say Thanks!, https://saythanks.io/to/phenobarbital
13
+ Keywords: asyncio,asyncpg,aioredis,aiomcache,artificial intelligence,ai,chatbot,agents
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Environment :: Web Environment
18
+ Classifier: Topic :: Software Development :: Build Tools
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3 :: Only
24
+ Classifier: Framework :: AsyncIO
25
+ Classifier: Typing :: Typed
26
+ Requires-Python: >=3.10.1
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: Cython==3.0.11
30
+ Requires-Dist: faiss-cpu>=1.9.0
31
+ Requires-Dist: jq==1.7.0
32
+ Requires-Dist: rank_bm25==0.2.2
33
+ Requires-Dist: tabulate==0.9.0
34
+ Requires-Dist: sentencepiece==0.2.0
35
+ Requires-Dist: markdown2==2.5.4
36
+ Requires-Dist: psycopg-binary==3.2.6
37
+ Requires-Dist: python-datamodel>=0.10.17
38
+ Requires-Dist: backoff==2.2.1
39
+ Requires-Dist: asyncdb>=2.11.6
40
+ Requires-Dist: google-cloud-bigquery>=3.30.0
41
+ Requires-Dist: numexpr==2.10.2
42
+ Requires-Dist: fpdf==1.7.2
43
+ Requires-Dist: python-docx==1.1.2
44
+ Requires-Dist: typing_extensions<=4.14.0,>=4.13.2
45
+ Requires-Dist: navconfig[default]>=1.7.13
46
+ Requires-Dist: navigator-auth>=0.15.8
47
+ Requires-Dist: navigator-session>=0.6.5
48
+ Requires-Dist: navigator-api[locale,uvloop]>=2.13.5
49
+ Requires-Dist: matplotlib==3.10.0
50
+ Requires-Dist: seaborn==0.13.2
51
+ Requires-Dist: pydub==0.25.1
52
+ Requires-Dist: async-notify[all]>=1.4.2
53
+ Requires-Dist: markitdown>=0.1.2
54
+ Requires-Dist: ddgs>=9.5.2
55
+ Requires-Dist: pytesseract>=0.3.13
56
+ Requires-Dist: python-statemachine==2.5.0
57
+ Requires-Dist: aiohttp-swagger3==0.10.0
58
+ Requires-Dist: PyYAML>=6.0.2
59
+ Provides-Extra: agents
60
+ Requires-Dist: sentence_transformers==5.0.0; extra == "agents"
61
+ Requires-Dist: yfinance==0.2.54; extra == "agents"
62
+ Requires-Dist: youtube_search==2.1.2; extra == "agents"
63
+ Requires-Dist: wikipedia==1.4.0; extra == "agents"
64
+ Requires-Dist: mediawikiapi==1.2; extra == "agents"
65
+ Requires-Dist: pyowm==3.3.0; extra == "agents"
66
+ Requires-Dist: stackapi==0.3.1; extra == "agents"
67
+ Requires-Dist: duckduckgo-search==7.5.0; extra == "agents"
68
+ Requires-Dist: google-search-results==2.4.2; extra == "agents"
69
+ Requires-Dist: google-api-python-client>=2.151.0; extra == "agents"
70
+ Requires-Dist: pomegranate>=1.1.1; extra == "agents"
71
+ Requires-Dist: networkx>=3.0; extra == "agents"
72
+ Requires-Dist: decorator>=5; extra == "agents"
73
+ Requires-Dist: autoviz==0.1.905; extra == "agents"
74
+ Requires-Dist: spacy==3.8.6; extra == "agents"
75
+ Requires-Dist: html2text==2025.4.15; extra == "agents"
76
+ Requires-Dist: httpx-sse==0.4.1; extra == "agents"
77
+ Requires-Dist: mcp==1.15.0; extra == "agents"
78
+ Requires-Dist: sse-starlette==3.0.2; extra == "agents"
79
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "agents"
80
+ Requires-Dist: undetected-chromedriver==3.5.5; extra == "agents"
81
+ Requires-Dist: selenium==4.35.0; extra == "agents"
82
+ Requires-Dist: playwright==1.52.0; extra == "agents"
83
+ Requires-Dist: streamlit==1.50.0; extra == "agents"
84
+ Requires-Dist: jira==3.10.5; extra == "agents"
85
+ Requires-Dist: arxiv==2.2.0; extra == "agents"
86
+ Requires-Dist: docker==7.1.0; extra == "agents"
87
+ Requires-Dist: aiogoogle==5.17.0; extra == "agents"
88
+ Requires-Dist: rq==2.6.0; extra == "agents"
89
+ Requires-Dist: zeep[async]==4.3.1; extra == "agents"
90
+ Requires-Dist: branca==0.8.2; extra == "agents"
91
+ Requires-Dist: folium==0.20.0; extra == "agents"
92
+ Requires-Dist: webdriver-manager==4.0.2; extra == "agents"
93
+ Provides-Extra: loaders
94
+ Requires-Dist: mammoth==1.8.0; extra == "loaders"
95
+ Requires-Dist: markdownify==1.1.0; extra == "loaders"
96
+ Requires-Dist: python-docx==1.1.2; extra == "loaders"
97
+ Requires-Dist: pymupdf==1.26.3; extra == "loaders"
98
+ Requires-Dist: pymupdf4llm==0.0.27; extra == "loaders"
99
+ Requires-Dist: pdf4llm==0.0.27; extra == "loaders"
100
+ Requires-Dist: pytube==15.0.0; extra == "loaders"
101
+ Requires-Dist: youtube_transcript_api==1.0.3; extra == "loaders"
102
+ Requires-Dist: python-pptx==1.0.2; extra == "loaders"
103
+ Requires-Dist: yt-dlp==2025.8.22; extra == "loaders"
104
+ Requires-Dist: ebooklib>=0.19; extra == "loaders"
105
+ Requires-Dist: whisperx==3.4.2; extra == "loaders"
106
+ Requires-Dist: av==15.1.0; extra == "loaders"
107
+ Requires-Dist: resemblyzer==0.1.4; extra == "loaders"
108
+ Requires-Dist: pyannote-audio==3.4.0; extra == "loaders"
109
+ Requires-Dist: pyannote-core==5.0.0; extra == "loaders"
110
+ Requires-Dist: pyannote-database==5.1.3; extra == "loaders"
111
+ Requires-Dist: pyannote-metrics==3.2.1; extra == "loaders"
112
+ Requires-Dist: pyannote-pipeline==3.0.1; extra == "loaders"
113
+ Requires-Dist: pytorch-lightning==2.5.5; extra == "loaders"
114
+ Requires-Dist: pytorch-metric-learning==2.9.0; extra == "loaders"
115
+ Requires-Dist: nvidia-cudnn-cu12==9.1.0.70; extra == "loaders"
116
+ Requires-Dist: moviepy==2.2.1; extra == "loaders"
117
+ Requires-Dist: decorator>=5; extra == "loaders"
118
+ Requires-Dist: ffmpeg==1.4; extra == "loaders"
119
+ Requires-Dist: paddleocr==3.2.0; extra == "loaders"
120
+ Provides-Extra: vectors
121
+ Requires-Dist: torch==2.6.0; extra == "vectors"
122
+ Requires-Dist: torchaudio==2.6.0; extra == "vectors"
123
+ Requires-Dist: numpy<2.2,>=2.1; extra == "vectors"
124
+ Requires-Dist: tiktoken==0.9.0; extra == "vectors"
125
+ Requires-Dist: accelerate==0.34.2; extra == "vectors"
126
+ Requires-Dist: bitsandbytes==0.44.1; extra == "vectors"
127
+ Requires-Dist: datasets>=3.0.2; extra == "vectors"
128
+ Requires-Dist: safetensors>=0.4.3; extra == "vectors"
129
+ Requires-Dist: transformers<=4.51.3,>=4.51.1; extra == "vectors"
130
+ Requires-Dist: sentence-transformers>=5.0.0; extra == "vectors"
131
+ Requires-Dist: tokenizers<=0.21.1,>=0.20.0; extra == "vectors"
132
+ Requires-Dist: tensorflow>=2.19.1; extra == "vectors"
133
+ Requires-Dist: tf-keras==2.19.0; extra == "vectors"
134
+ Requires-Dist: simsimd>=4.3.1; extra == "vectors"
135
+ Requires-Dist: opencv-python==4.10.0.84; extra == "vectors"
136
+ Requires-Dist: chromadb==0.6.3; extra == "vectors"
137
+ Requires-Dist: bm25s[full]==0.2.14; extra == "vectors"
138
+ Provides-Extra: images
139
+ Requires-Dist: torchvision==0.21.0; extra == "images"
140
+ Requires-Dist: timm==1.0.15; extra == "images"
141
+ Requires-Dist: ultralytics==8.3.179; extra == "images"
142
+ Requires-Dist: albumentations==2.0.6; extra == "images"
143
+ Requires-Dist: filetype==1.2.0; extra == "images"
144
+ Requires-Dist: imagehash==4.3.1; extra == "images"
145
+ Requires-Dist: pgvector==0.4.1; extra == "images"
146
+ Requires-Dist: pyheif==0.8.0; extra == "images"
147
+ Requires-Dist: exif==1.6.1; extra == "images"
148
+ Requires-Dist: pillow-avif-plugin==1.5.2; extra == "images"
149
+ Requires-Dist: pillow-heif==0.22.0; extra == "images"
150
+ Requires-Dist: python-xmp-toolkit==2.0.2; extra == "images"
151
+ Requires-Dist: exifread==3.5.1; extra == "images"
152
+ Requires-Dist: transformers<=4.51.3,>=4.51.1; extra == "images"
153
+ Requires-Dist: ffmpeg==1.4; extra == "images"
154
+ Requires-Dist: holoviews==1.21.0; extra == "images"
155
+ Requires-Dist: bokeh==3.7.3; extra == "images"
156
+ Requires-Dist: pandas-bokeh==0.5.5; extra == "images"
157
+ Requires-Dist: plotly==5.22.0; extra == "images"
158
+ Requires-Dist: ipywidgets==8.1.0; extra == "images"
159
+ Requires-Dist: altair==5.5.0; extra == "images"
160
+ Provides-Extra: whisperx
161
+ Requires-Dist: whisperx==3.4.2; extra == "whisperx"
162
+ Requires-Dist: av==15.1.0; extra == "whisperx"
163
+ Requires-Dist: torch==2.6.0; extra == "whisperx"
164
+ Requires-Dist: torchaudio==2.6.0; extra == "whisperx"
165
+ Requires-Dist: torchvision==0.21.0; extra == "whisperx"
166
+ Requires-Dist: pyannote-audio==3.4.0; extra == "whisperx"
167
+ Requires-Dist: pyannote-core==5.0.0; extra == "whisperx"
168
+ Requires-Dist: pyannote-database==5.1.3; extra == "whisperx"
169
+ Requires-Dist: pyannote-metrics==3.2.1; extra == "whisperx"
170
+ Requires-Dist: pyannote-pipeline==3.0.1; extra == "whisperx"
171
+ Requires-Dist: pytorch-lightning==2.5.5; extra == "whisperx"
172
+ Requires-Dist: pytorch-metric-learning==2.9.0; extra == "whisperx"
173
+ Requires-Dist: nvidia-cudnn-cu12==9.1.0.70; extra == "whisperx"
174
+ Requires-Dist: torch-audiomentations==0.12.0; extra == "whisperx"
175
+ Requires-Dist: torch-pitch-shift==1.2.5; extra == "whisperx"
176
+ Requires-Dist: torchmetrics==1.8.2; extra == "whisperx"
177
+ Provides-Extra: anthropic
178
+ Requires-Dist: anthropic==0.61.0; extra == "anthropic"
179
+ Provides-Extra: openai
180
+ Requires-Dist: openai==2.7.1; extra == "openai"
181
+ Requires-Dist: tiktoken==0.9.0; extra == "openai"
182
+ Provides-Extra: google
183
+ Requires-Dist: google-api-python-client<=2.177.0,>=2.166.0; extra == "google"
184
+ Requires-Dist: google-cloud-texttospeech==2.27.0; extra == "google"
185
+ Requires-Dist: google-genai<=1.49.0,>=1.36.0; extra == "google"
186
+ Requires-Dist: google-cloud-aiplatform==1.110.0; extra == "google"
187
+ Provides-Extra: groq
188
+ Requires-Dist: groq==0.33.0; extra == "groq"
189
+ Requires-Dist: typing_extensions<=4.14.1,>=4.13.2; extra == "groq"
190
+ Provides-Extra: milvus
191
+ Requires-Dist: pymilvus==2.4.8; extra == "milvus"
192
+ Requires-Dist: milvus==2.3.5; extra == "milvus"
193
+ Provides-Extra: chroma
194
+ Requires-Dist: chroma==0.2.0; extra == "chroma"
195
+ Provides-Extra: eda
196
+ Requires-Dist: ydata-profiling==4.16.1; extra == "eda"
197
+ Requires-Dist: sweetviz==2.1.4; extra == "eda"
198
+ Provides-Extra: security
199
+ Requires-Dist: pytector[gguf]==0.2.0; extra == "security"
200
+ Provides-Extra: all
201
+ Requires-Dist: ai-parrot[agents,anthropic,chroma,google,groq,images,loaders,milvus,openai,vectors]; extra == "all"
202
+ Provides-Extra: dev
203
+ Requires-Dist: pytest>=7.2.2; extra == "dev"
204
+ Requires-Dist: pytest-asyncio==0.21.1; extra == "dev"
205
+ Requires-Dist: pytest-xdist==3.3.1; extra == "dev"
206
+ Requires-Dist: pytest-assume==2.4.3; extra == "dev"
207
+ Requires-Dist: black; extra == "dev"
208
+ Requires-Dist: pylint; extra == "dev"
209
+ Requires-Dist: mypy; extra == "dev"
210
+ Requires-Dist: coverage; extra == "dev"
211
+ Requires-Dist: maturin==1.9.6; extra == "dev"
212
+ Dynamic: license-file
213
+
214
+ # 🦜 AI-Parrot
215
+
216
+ **A unified Python library for building intelligent agents, chatbots, and LLM-powered applications**
217
+
218
+ AI-Parrot simplifies working with Large Language Models by providing a cohesive framework for creating conversational agents, managing tools, implementing RAG systems, and orchestrating complex AI workflowsβ€”all without the bloat of traditional frameworks.
219
+
220
+ ## ✨ Key Features
221
+
222
+ ### πŸ€– Multi-Provider LLM Support
223
+ Connect seamlessly to multiple AI providers through a unified interface:
224
+ - **OpenAI** (GPT-4, GPT-3.5)
225
+ - **Anthropic Claude** (Claude 3.5 Sonnet, Opus)
226
+ - **Google GenAI** (Gemini models)
227
+ - **Groq** (Fast inference)
228
+
229
+ ### πŸ› οΈ Intelligent Agent System
230
+ Build sophisticated agents with built-in tool support and orchestration:
231
+ - **Tool Manager**: Share tools across multiple agents
232
+ - **Agent Registry**: Decorator-based agent creation and registration
233
+ - **Python Tool Calling**: Native support for calling Python functions as tools
234
+ - **Complex Toolkits**: Compose multiple tools into reusable toolkits
235
+
236
+ ### πŸ’¬ Chatbot Creation
237
+ Create production-ready chatbots with minimal code:
238
+ - Conversational context management
239
+ - Multi-turn dialogue support
240
+ - Streaming responses
241
+ - Custom personality and behavior configuration
242
+
243
+ ### πŸ—„οΈ Knowledge Base & RAG
244
+ Implement Retrieval-Augmented Generation with enterprise-grade components:
245
+ - **PgVector Integration**: PostgreSQL-based vector storage for semantic search
246
+ - **Document Loaders**: Transform any document format into AI-ready context
247
+ - **Open-Source Embeddings**: Hugging Face Transformers integration
248
+ - **Structured Outputs**: Type-safe responses from your LLMs
249
+
250
+ ### 🌐 API & Server Capabilities
251
+ Deploy your AI applications with ease:
252
+ - **Bot Manager**: Centralized management for multiple bot instances
253
+ - **REST API**: Expose your agents and chatbots via HTTP endpoints
254
+ - **MCP Server**: Model Context Protocol support for standardized agent communication
255
+
256
+ ### ⏰ Task Scheduling
257
+ Orchestrate agent actions over time:
258
+ - Schedule periodic agent tasks
259
+ - Trigger-based automation
260
+ - Asynchronous execution support
261
+ - Task dependency management
262
+
263
+ ## πŸš€ Quick Start
264
+
265
+ ### Installation
266
+
267
+ ```bash
268
+ pip install ai-parrot
269
+ ```
270
+
271
+ ### Create Your First Chatbot
272
+
273
+ ```python
274
+ from ai_parrot import ChatBot, OpenAIClient
275
+
276
+ # Initialize LLM client
277
+ client = OpenAIClient(api_key="your-api-key")
278
+
279
+ # Create a chatbot
280
+ bot = ChatBot(
281
+ name="assistant",
282
+ client=client,
283
+ system_prompt="You are a helpful AI assistant."
284
+ )
285
+
286
+ # Have a conversation
287
+ response = bot.chat("What's the weather like today?")
288
+ print(response)
289
+ ```
290
+
291
+ ### Build an Agent with Tools
292
+
293
+ ```python
294
+ from ai_parrot import Agent, tool
295
+ from ai_parrot.registry import agent_registry
296
+
297
+ @tool
298
+ def calculate_sum(a: int, b: int) -> int:
299
+ """Add two numbers together."""
300
+ return a + b
301
+
302
+ @tool
303
+ def get_current_time() -> str:
304
+ """Get the current time."""
305
+ from datetime import datetime
306
+ return datetime.now().strftime("%H:%M:%S")
307
+
308
+ # Register an agent with tools
309
+ @agent_registry.register("math_agent")
310
+ class MathAgent(Agent):
311
+ def __init__(self):
312
+ super().__init__(
313
+ name="Math Helper",
314
+ tools=[calculate_sum, get_current_time]
315
+ )
316
+
317
+ # Use the agent
318
+ agent = agent_registry.get("math_agent")
319
+ result = agent.run("What's 42 plus 58? Also, what time is it?")
320
+ ```
321
+
322
+ ### Implement RAG with Vector Store
323
+
324
+ ```python
325
+ from ai_parrot import RAGChatBot, PgVectorStore
326
+ from ai_parrot.loaders import PDFLoader, TextLoader
327
+
328
+ # Initialize vector store
329
+ vector_store = PgVectorStore(
330
+ connection_string="postgresql://user:pass@localhost/db"
331
+ )
332
+
333
+ # Load and index documents
334
+ loader = PDFLoader()
335
+ documents = loader.load("./docs/manual.pdf")
336
+ vector_store.add_documents(documents)
337
+
338
+ # Create RAG-enabled chatbot
339
+ rag_bot = RAGChatBot(
340
+ client=client,
341
+ vector_store=vector_store,
342
+ top_k=5
343
+ )
344
+
345
+ # Query with context
346
+ response = rag_bot.chat("How do I configure the settings?")
347
+ ```
348
+
349
+ ### Expose via API
350
+
351
+ ```python
352
+ from ai_parrot import BotManager, create_api
353
+
354
+ # Create bot manager
355
+ manager = BotManager()
356
+ manager.register_bot("assistant", bot)
357
+ manager.register_agent("math_helper", agent)
358
+
359
+ # Create and run API server
360
+ app = create_api(manager)
361
+
362
+ # Run with: uvicorn main:app --reload
363
+ ```
364
+
365
+ ### Schedule Agent Tasks
366
+
367
+ ```python
368
+ from ai_parrot import TaskScheduler
369
+
370
+ scheduler = TaskScheduler()
371
+
372
+ # Schedule a daily summary
373
+ @scheduler.schedule(cron="0 9 * * *") # Every day at 9 AM
374
+ async def daily_summary():
375
+ summary = await agent.run("Generate a summary of yesterday's activities")
376
+ send_email(summary)
377
+
378
+ # Run the scheduler
379
+ scheduler.start()
380
+ ```
381
+
382
+ ## πŸ—οΈ Architecture
383
+
384
+ AI-Parrot is designed with modularity and extensibility in mind:
385
+
386
+ ```
387
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
388
+ β”‚ Application Layer β”‚
389
+ β”‚ (Chatbots, Agents, Custom Logic) β”‚
390
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
391
+ β”‚
392
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
393
+ β”‚ AI-Parrot Core β”‚
394
+ β”‚ β€’ Agent Registry β€’ Tool Manager β”‚
395
+ β”‚ β€’ Bot Manager β€’ Task Scheduler β”‚
396
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
397
+ β”‚
398
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
399
+ β”‚ Provider Integrations β”‚
400
+ β”‚ β€’ OpenAI β€’ Claude β€’ Gemini β”‚
401
+ β”‚ β€’ Groq β€’ Hugging Face β”‚
402
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
403
+ β”‚
404
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
405
+ β”‚ Storage & Infrastructure β”‚
406
+ β”‚ β€’ PgVector β€’ Document Loaders β”‚
407
+ β”‚ β€’ MCP Server β€’ API Layer β”‚
408
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
409
+ ```
410
+
411
+ ## 🎯 Use Cases
412
+
413
+ - **Customer Support Bots**: Build intelligent support agents with knowledge base integration
414
+ - **Research Assistants**: Create agents that can search, analyze, and synthesize information
415
+ - **Automation Workflows**: Schedule and orchestrate AI-powered tasks
416
+ - **Internal Tools**: Expose LLM capabilities through APIs for your team
417
+ - **Multi-Agent Systems**: Coordinate multiple specialized agents working together
418
+
419
+ ## πŸ—ΊοΈ Roadmap
420
+
421
+ - βœ… **Langchain Independence**: Removed heavyweight dependencies
422
+ - 🚧 **Complex Toolkits**: Advanced tool composition and chaining
423
+ - 🚧 **Model Interoperability**: Seamless LLM + Hugging Face model integration
424
+ - πŸ“‹ **Non-LLM Models**: Support for classification, NER, and other ML models
425
+ - πŸ“‹ **MCP Full Integration**: Complete Model Context Protocol implementation
426
+ - πŸ“‹ **Graph-Based RAG**: Knowledge graphs with ArangoDB for advanced reasoning
427
+
428
+ ## 🀝 Contributing
429
+
430
+ Contributions are welcome! Whether it's bug fixes, new features, or documentation improvements, we appreciate your help in making AI-Parrot better.
431
+
432
+ ## πŸ“„ License
433
+
434
+ MIT License.
435
+
436
+ ## πŸ“š Documentation
437
+
438
+ For detailed documentation, examples, and API reference, see the examples/ folder.
439
+
440
+ ## πŸ’¬ Community & Support
441
+
442
+ - **Issues**: [GitHub Issues](your-github-repo/issues)
443
+ - **Discussions**: [GitHub Discussions](your-github-repo/discussions)
444
+
445
+ ---
446
+
447
+ Built with ❀️ for developers who want powerful AI tools without the complexity.