{"id":19845625,"url":"https://github.com/rokbenko/ai-playground","last_synced_at":"2025-05-01T21:30:48.739Z","repository":{"id":205967367,"uuid":"715507180","full_name":"rokbenko/ai-playground","owner":"rokbenko","description":"Code from tutorials presented on the \"Code AI with Rok\" YouTube channel","archived":false,"fork":false,"pushed_at":"2024-05-22T12:22:43.000Z","size":17241,"stargazers_count":72,"open_issues_count":0,"forks_count":20,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-22T12:41:29.326Z","etag":null,"topics":["fetchai","gemini-api","llama-index","milvus","openai-api","spacy"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/@CodeAIwithRok","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rokbenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORTERS.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-07T09:32:52.000Z","updated_at":"2024-06-12T00:54:25.712Z","dependencies_parsed_at":"2023-11-07T11:26:37.285Z","dependency_job_id":"e8653ab5-7791-4e05-bb4c-833e11c4b4d1","html_url":"https://github.com/rokbenko/ai-playground","commit_stats":null,"previous_names":["rokbenko/openai-api-tutorials"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rokbenko%2Fai-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rokbenko%2Fai-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rokbenko%2Fai-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rokbenko%2Fai-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rokbenko","download_url":"https://codeload.github.com/rokbenko/ai-playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224278477,"owners_count":17285080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fetchai","gemini-api","llama-index","milvus","openai-api","spacy"],"created_at":"2024-11-12T13:08:42.326Z","updated_at":"2024-11-12T13:08:42.933Z","avatar_url":"https://github.com/rokbenko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Code from tutorials presented on the\u003cbr\u003e [Code AI with Rok](https://www.youtube.com/@rokbenko?sub_confirmation=1) YouTube channel\n\nEnjoying what you find in this repository? Your star ⭐ would be greatly appreciated!\n\n\u003cbr\u003e\n\n\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of contents\u003c/summary\u003e\n  \n  - [LLMs](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#-llms-)\u003cbr\u003e\n    - [OpenAI](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#openai)\u003cbr\u003e\n    - [Google](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#google)\u003cbr\u003e\n  - [Frameworks](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#%EF%B8%8F-frameworks-%EF%B8%8F)\u003cbr\u003e\n    - [LangChain](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#langchain)\u003cbr\u003e\n    - [LlamaIndex](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#llamaindex)\u003cbr\u003e\n    - [JigsawStack](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#jigsawstack)\u003cbr\u003e\n  - [Agents](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#-agents-)\n    - [CrewAI](https://github.com/rokbenko/ai-playground/tree/main?tab=readme-ov-file#crewai)\u003cbr\u003e \n    - [Fetch.ai](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#fetchai)\u003cbr\u003e\n  - [Cloud](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#%EF%B8%8F-cloud-%EF%B8%8F)\u003cbr\u003e\n    - [Snowflake](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#snowflake)\u003cbr\u003e\n  - [Vector DBs](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#%EF%B8%8F-vector-databases-%EF%B8%8F)\u003cbr\u003e\n    - [Milvus](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#milvus)\u003cbr\u003e\n  - [NLP](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#-nlp-)\u003cbr\u003e\n    - [spaCy](https://github.com/rokbenko/ai-playground?tab=readme-ov-file#spacy)\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## 👾 LLMs 👾\n\n### [OpenAI](https://openai.com/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eResponse in JSON format\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to get a JSON response using the OpenAI Chat Completions API\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/1-Get_response_in_JSON_format\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/o4q2qsGKVkE\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003e\n      Personal Math Tutor*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev1\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to build a Personal Math Tutor using the OpenAI Assistants API \u003ccode\u003ev1\u003c/code\u003e beta with the Code Interpreter tool\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/2-Build_personal_math_tutor\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/F-KRs6vg4mM\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#3\u003c/td\u003e\n    \u003ctd\u003e\n      GUI for the Personal Math Tutor*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev1\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003eNext.js GUI for the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/2-Build_personal_math_tutor\"\u003e#2 Personal Math Tutor\u003c/a\u003e tutorial\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Next.js badge\" src=\"https://img.shields.io/badge/Next.js-%23202020?style=flat\u0026logo=nextdotjs\"\u003e\n      \u003cimg alt=\"Tailwind CSS badge\" src=\"https://img.shields.io/badge/Tailwind%20CSS-%23202020?style=flat\u0026logo=tailwindcss\"\u003e\n      \u003cimg alt=\"Material UI badge\" src=\"https://img.shields.io/badge/Material%20UI-%23202020?style=flat\u0026logo=mui\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/3-GUI_personal_math_tutor\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/QThg_MqiYCo\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#4\u003c/td\u003e\n    \u003ctd\u003e\n      Customer Support Chatbot*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev1\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to build a Customer Support Chatbot using the OpenAI Assistants API \u003ccode\u003ev1\u003c/code\u003e beta with the Knowledge Retrieval tool\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/4-Build_customer_support_chatbot\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/xbgX8fu78DI\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#5\u003c/td\u003e\n    \u003ctd\u003e\n      TUI for the Customer Support Chatbot*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev1\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003ePython and Node.js TUIs for the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/4-Build_customer_support_chatbot\"\u003e#4 Customer Support Chatbot\u003c/a\u003e tutorial\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/5-TUI_customer_support_chatbot\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/RUZwYQnIX_0\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#6\u003c/td\u003e\n    \u003ctd\u003e\n      TUI for the Customer Support Chatbot with response streaming*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev1\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003ePython and Node.js TUIs for the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/4-Build_customer_support_chatbot\"\u003e#4 Customer Support Chatbot\u003c/a\u003e tutorial with response streaming\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/6-TUI_customer_support_chatbot_streaming\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/d8dsFlLATrw\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#7\u003c/td\u003e\n    \u003ctd\u003e\n      TUI for assistants: response polling vs. streaming*\u003cbr\u003e\n      \u003csup\u003e*Assistants API \u003ccode\u003ev2\u003c/code\u003e beta\u003c/sup\u003e\n    \u003c/td\u003e\n    \u003ctd\u003ePython and Node.js TUIs for assistants to show the difference between response polling (manual or with a helper) and streaming (with a helper)\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/7-TUI_assistants_polling_vs_streaming_Assistants_API_v2_beta\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/_uUSclN-O9M\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#8\u003c/td\u003e\n    \u003ctd\u003eLLMs explained\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how LLMs work using the OpenAI SDK \u003ccode\u003etop_logprobs\u003c/code\u003e parameter\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/openai-tutorials/8-LLMs_explained\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/cervFqzf7ec\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### [Google](https://deepmind.google/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eGemini Pro API starter\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to use the Gemini Pro API\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/google-tutorials/1-Gemini_Pro_API_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/0qv_4x1K6hU\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003eVertex AI Gemini Pro API starter\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to use the Vertex AI Gemini Pro API\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/google-tutorials/2-Vertex_AI_Gemini_Pro_API_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/I8W-4oq1onY\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## 🛠️ Frameworks 🛠️\n\n### [LangChain](https://www.langchain.com/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eTUI for a LangGraph agent with a web connection\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js TUIs for a LangGraph ReAct agent using OpenAI LLM and Tavily tool to get a web connection\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/langchain-tutorials/1-TUI_LangGraph_agent_Tavily\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/Qa0B5m0t1Cs\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003eTUI for a LangGraph agent with memory\u003c/td\u003e\n    \u003ctd\u003eAdd memory to the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/langchain-tutorials/1-TUI_LangGraph_agent_Tavily\"\u003e#1 TUI for a LangGraph agent with a web connection\u003c/a\u003e tutorial\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/langchain-tutorials/2-TUI_LangGraph_agent_memory\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/GMaGG8UBek8\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#3\u003c/td\u003e\n    \u003ctd\u003eTUI for a LangGraph agent with persistent memory using PostgreSQL\u003c/td\u003e\n    \u003ctd\u003eAdd persistent memory using PostgreSQL to the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/langchain-tutorials/1-TUI_LangGraph_agent_Tavily\"\u003e#1 TUI for a LangGraph agent with a web connection\u003c/a\u003e tutorial\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      Coming soon... ✨\n    \u003c/td\u003e\n    \u003ctd\u003e\n      Coming soon... ✨\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### [LlamaIndex](https://www.llamaindex.ai/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eCreate Llama app with 1 command in 2 minutes\u003c/td\u003e\n    \u003ctd\u003eInstructions on how to create a LlamaIndex chat streaming app using Next.js GUI and OpenAI LLM with 1 command in 2 minutes\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Next.js badge\" src=\"https://img.shields.io/badge/Next.js-%23202020?style=flat\u0026logo=nextdotjs\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/llamaindex-tutorials/1-Create_llama\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/IQqiIfRLNY4\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003eGUI for a Travel Recommendation RAG\u003c/td\u003e\n    \u003ctd\u003eStreamlit GUI for a Travel Recommendation RAG with response streaming using LlamaIndex and OpenAI LLM\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Streamlit badge\" src=\"https://img.shields.io/badge/Streamlit-%23202020?style=flat\u0026logo=streamlit\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/llamaindex-tutorials/2-GUI_travel_recommendation_RAG\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/93uru3QmgAo\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#3\u003c/td\u003e\n    \u003ctd\u003eEval of the Travel Recommendation RAG\u003c/td\u003e\n    \u003ctd\u003eEvaluation of the \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/llamaindex-tutorials/2-GUI_travel_recommendation_RAG\"\u003e#2 GUI for a Travel Recommendation RAG\u003c/a\u003e tutorial\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/llamaindex-tutorials/3-Eval_travel_recommendation_RAG\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/l5z_Peocss0\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### [JigsawStack](https://jigsawstack.com/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eGUI for a Personal Recipe Assistant\u003c/td\u003e\n    \u003ctd\u003eStreamlit GUI for a Personal Recipe Assistant that generates recipes based on the available ingredients recognized from the uploaded photo and selected preferences by the user\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Streamlit badge\" src=\"https://img.shields.io/badge/Streamlit-%23202020?style=flat\u0026logo=streamlit\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/jigsawstack-tutorials/1-GUI_personal_recipe_assistant\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/qcwp_qCOoCs\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## 🤖 Agents 🤖\n\n### [CrewAI](https://www.crewai.com/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003ePodcast Prepper\u003c/td\u003e\n    \u003ctd\u003ePython example using CrewAI, Anthropic LLM and Exa tool, designed for podcast hosts, helping them:\u003cbr\u003e\n      \u003cul\u003e\n        \u003cli\u003eresearch a guest\u003c/li\u003e\n        \u003cli\u003eprepare detailed insights about the guest\u003c/li\u003e\n        \u003cli\u003esuggest relevant questions for an upcoming episode with the guest\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/crewai-tutorials/1-Podcast_prepper/podcast_prepper\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/vUQZvc5NTPw\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### [Fetch.ai](https://fetch.ai/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003euAgents starter\u003c/td\u003e\n    \u003ctd\u003e\n      Python examples on how to:\u003cbr\u003e\n      \u003cul\u003e\n        \u003cli\u003ebuild a Fetch.ai agent with a startup task\u003c/li\u003e\n        \u003cli\u003ebuild a Fetch.ai agent with an interval task\u003c/li\u003e\n        \u003cli\u003ebuild a Fetch.ai agent and get its address\u003c/li\u003e\n        \u003cli\u003ebuild a Fetch.ai stateful agent\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/fetchai-tutorials/1-uAgents_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/AZhKvDc2O20\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003euAgents communication\u003c/td\u003e\n    \u003ctd\u003ePython examples on how to make Fetch.ai agents communicate with each other locally or remotely using Almanac contracts\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/fetchai-tutorials/2-uAgents_communication\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/40sixkWgXGc\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## ☁️ Cloud ☁️\n\n### [Snowflake](https://www.snowflake.com/en/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eSnowflake Cortex LLM functions starter\u003c/td\u003e\n    \u003ctd\u003ePython example on how to use the Snowflake Cortex LLM functions\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/snowflake-tutorials/1-Snowflake_Cortex_LLM_functions_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/3vCuoezBMEY\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## 🗃️ Vector DBs 🗃️\n\n### [Milvus](https://milvus.io/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eMilvus Standalone starter\u003c/td\u003e\n    \u003ctd\u003ePython and Node.js examples on how to install Milvus Standalone using Docker, connect to a Milvus Standalone server and list all Milvus collections\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"JavaScript badge\" src=\"https://img.shields.io/badge/JavaScript-%23202020?style=flat\u0026logo=javascript\"\u003e\n      \u003cimg alt=\"Node.js badge\" src=\"https://img.shields.io/badge/Node.js-%23202020?style=flat\u0026logo=nodedotjs\"\u003e\n      \u003cimg alt=\"Docker badge\" src=\"https://img.shields.io/badge/Docker-%23202020?style=flat\u0026logo=docker\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/milvus-tutorials/1-Milvus_standalone_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/OD5FS7qUfBQ\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#2\u003c/td\u003e\n    \u003ctd\u003eAttu starter\u003c/td\u003e\n    \u003ctd\u003eInstructions on how to run Attu, a GUI for Milvus Standalone, using Docker\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Docker badge\" src=\"https://img.shields.io/badge/Docker-%23202020?style=flat\u0026logo=docker\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/milvus-tutorials/2-Attu_starter\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/oUQUVcJBnYk\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#3\u003c/td\u003e\n    \u003ctd\u003eText similarity search\u003c/td\u003e\n    \u003ctd\u003ePython example on how to do text similarity search with Milvus Standalone\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python badge\" src=\"https://img.shields.io/badge/Python-%23202020?style=flat\u0026logo=python\"\u003e\n      \u003cimg alt=\"Docker badge\" src=\"https://img.shields.io/badge/Docker-%23202020?style=flat\u0026logo=docker\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/milvus-tutorials/3-Text_similarity_search\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/ySZp0rcGr4A\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## 💬 NLP 💬\n\n### [spaCy](https://spacy.io/)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eTutorial title\u003c/th\u003e\n    \u003cth\u003eTutorial description\u003c/th\u003e\n    \u003cth\u003eTech stack\u003c/th\u003e\n    \u003cth colspan=\"2\"\u003eLinks\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e#1\u003c/td\u003e\n    \u003ctd\u003eAdd a new entity label to NER\u003c/td\u003e\n    \u003ctd\u003eJupyter Notebook example on how to add a new entity label to spaCy's default NER model\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Jupyter Notebook badge\" src=\"https://img.shields.io/badge/Jupyter%20Notebook-%23202020?style=flat\u0026logo=jupyter\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/rokbenko/ai-playground/tree/main/spacy-tutorials/1-Add_new_entity_label_to_NER\" target=\"_blank\"\u003eGitHub\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://youtu.be/W-0EOzFomO0\" target=\"_blank\"\u003eYouTube\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## ⭐ Star history ⭐\n\n[![Star history chart](https://api.star-history.com/svg?repos=rokbenko/ai-playground\u0026type=Date)](https://star-history.com/#rokbenko/ai-playground\u0026Date)\n\n\u003cbr\u003e\n\n## 🤝 Contributing 🤝\n\nThank you for considering contributing to my repository. While I don't accept direct additions of tutorials, I warmly welcome contributions in the following forms:\n\n- **Reporting major issues**: Found a bug, or error? Feel free to open an issue on GitHub. Be sure to provide as much detail as possible, including steps to reproduce the issue.\n- **Fixing minor issues**: Found a typo, grammatical error, or other small issue? Feel free to open a pull request to fix them directly.\n- **Making suggestions**: Have an idea how I can enhance my tutorials or topics I should cover? Share your thoughts by creating a new issue outlining your suggestion. I'll carefully consider all reasonable ideas.\n\nTo [contribute](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project), do the following:\n\n1.  Fork this repository.\n2.  Make your desired changes.\n3.  Create a commit and push the changes.\n4.  Create a pull request.\n\nI'll review your pull request and get back to you as soon as possible.\n\n\u003cbr\u003e\n\n## 📄 License 📄\n\nThis project is open source and available under the [MIT License](https://github.com/rokbenko/ai-playground/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frokbenko%2Fai-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frokbenko%2Fai-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frokbenko%2Fai-playground/lists"}