[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Farzad-R--LLM-Zero-to-Hundred":3,"tool-Farzad-R--LLM-Zero-to-Hundred":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":76,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":97,"forks":98,"last_commit_at":99,"license":76,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":117,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":119,"updated_at":120,"faqs":121,"releases":150},5130,"Farzad-R\u002FLLM-Zero-to-Hundred","LLM-Zero-to-Hundred","This repository contains different LLM chatbot projects (RAG, LLM agents, etc.) and well-known techniques for training and fine tuning LLMs.","LLM-Zero-to-Hundred 是一个面向开发者的开源项目集合，旨在提供从基础到进阶的大语言模型（LLM）应用实战指南。它收录了多种聊天机器人项目，涵盖检索增强生成（RAG）、智能体（Agents）构建以及模型训练与微调等核心技术方案，帮助开发者解决从零开始搭建复杂 AI 应用时面临的技术选型难、架构设计复杂及落地实践缺乏参考等痛点。\n\n该项目特别适合希望深入掌握 LLM 工程化落地的软件开发人员和技术研究人员。其独特亮点在于不仅提供了 WebGPT、多模态聊天机器人等完整案例，还深入探讨了生产级架构设计，如基于 LangGraph 的智能体编排、微服务架构（Docker Compose）、自动化向量数据库构建以及可视化监控方案。此外，项目对比了 LangChain 与 LlamaIndex 在 RAG 场景下的差异，并包含函数调用、向量化等关键技术的详细教程。每个项目均遵循规范的目录结构，配备配置文件与辅助文档，便于用户快速复现与学习，是通往大模型全栈开发的实用路线图。","# LLM-Zero-to-Hundred\r\n\r\n\u003Cdiv align=\"center\">\r\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFarzad-R_LLM-Zero-to-Hundred_readme_dba120597f73.jpg\" alt=\"LOGO\">\r\n\u003C\u002Fdiv>\r\nThis repository showcases various applications of LLM chatbots and provides comprehensive insights into established methodologies for training and fine-tuning Language Models.\r\n\r\n[![YouTube Tutorial](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-Watch%20Tutorial-red?style=for-the-badge&logo=youtube)](https:\u002F\u002Fwww.youtube.com\u002F@airoundtable)\r\n\r\n### List of projects:\r\n- [x] [Hidden-Technical-Debt-Behind-AI-Agents](#Hidden-Technical-Debt-Behind-AI-Agents)\r\n- [x] [WebGPT](#WebGPT)\r\n- [x] [RAG-GPT](#RAG-GPT)\r\n- [x] [WebRAGQuery](#WebRAGQuery)\r\n- [x] [LLM Full Finetuning](#Fine-tuning-LLMs)\r\n- [x] [RAG-Master LLamaindex vs Langchain](RAGMaster)\r\n- [x] [open-source-RAG-GEMMA](#Open-Source-RAG-GEMMA)\r\n- [x] [HUMAIN: Advanced Multimodal, Multitask Chatbot](#Multimodal-ChatBot)\r\n\r\n### List of tutorials\r\n- [x] [LLM Function Calling Tutorial](#LLM-function-calling-tutorial)\r\n- [x] [Vectorization Tutorial](#Vectorization-Tutorial)\r\n\r\nGeneral structure of the projects:\r\n\r\n```\r\nProject-folder\r\n  ├── README.md           \u003C- The top-level README for developers using this project.\r\n  ├── HELPER.md           \u003C- Contains extra information that might be useful to know for executing the project.\r\n  ├── .env                \u003C- dotenv file for local configuration.\r\n  ├── .here               \u003C- Marker for project root.\r\n  ├── configs             \u003C- Holds yml files for project configs\r\n  ├── data                \u003C- Contains the sample data for the project.\r\n  ├── src                 \u003C- Contains the source code(s) for executing the project.\r\n  |   └── utils           \u003C- Contains all the necesssary project's modules. \r\n  └── images              \u003C- Contains all the images used in the user interface and the README file. \r\n```\r\nNOTE: This is the general structure of the projects, however there might be small changes duo to the specific needs of each project.\r\n\r\n## Project description:\r\n\u003C!-- ====================================== -->\r\n\u003C!-- Hidden Technical Debt behind AI Agents -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"Hidden-Technical-Debt-Behind-AI-Agents\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FHidden-Technical-Debt-Behind-AI-Agents\">\u003Cb>Advanced Multimodal Chatbot:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nWhat This Project Covers:\r\n\r\n- Agentic Chatbot with LangGraph\r\n- Real Databases for Production-Style Design\r\n- Microservice Architecture (Docker Compose)\r\n- Automated VectorDB Creation (Inside Container)\r\n- Visual Monitoring with Weave Scope\r\n- Development Best Practices\r\n\r\n**YouTube video:**: [Link](https:\u002F\u002Fyoutu.be\u002F9GxOsJ-kQtg?si=jVoVoQTZhT_6EUVp)\r\n\r\n\u003C!-- ====================================== -->\r\n\u003C!-- Advanced Multimodal Chatbot -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"HUMAIN: Advanced Multimodal, Multitask Chatbot\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FHUMAIN-advanced-multimodal-chatbot\">\u003Cb>Advanced Multimodal Chatbot:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nFeatures:\r\n\r\n- ChatGPT-like interaction: Chatbot can act as a normal AI assistant.\r\n- RAG (Retrieval Augmented Generation) capabilities: The chatbot can perform RAG in 3 different ways \r\n  1. With preprocessed documents\r\n  2. Documents that the user uploads while using the chatbot\r\n  3. Any webiste that the user requests.\r\n- Image generation: Chatbot utilizes a stable diffusion model to generate images.\r\n- Image understanding: Chatbot Understands the content of images and can answer user's question based on the content of the image using the LLava model.\r\n- DuckDuckGo integration: Access the DuckDuckGo search engine to provide answers based on search results when needed.\r\n- Summarization: Summarize website content or documents upon user request.\r\n- Text and voice interaction: Interact with chatbot through both text and voice inputs.\r\n- Memory: The GPT models in the chatbot also have access to the memory (user's previous queries during the current session).\r\n\r\nNOTE: This chatbot was built on top of RAG-GPT and WebRAGQuery projects.\r\n\r\n**YouTube video:**: [Link](https:\u002F\u002Fyoutu.be\u002FAAvqscJPXIY?si=Lu7DB07XXDzcFfKG)\r\n\r\n\u003C!-- ====================================== -->\r\n\u003C!-- Open-Source-RAG-GEMMA -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"Open-Source-RAG-GEMMA\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FOpen-Source-RAG-GEMMA\">\u003Cb>Open-Source-RAG-GEMMA:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nIn this project, I demonstrate how an open source LLM can be deployed on-prem. For that, I took RAG-GPT project and convert it into a fully open source RAG chatbot. The open source chatbot is designed using Google Gemma7B LLm and BAAI\u002Fbge-large-en as the embedding model.\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fyoutu.be\u002F6dyz2M_UWLw?si=phnTb9GRPx8RXFYp)\r\n\u003C!-- ====================================== -->\r\n\u003C!-- RAGMaster -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"RAGMaster\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FRAGMaster-LlamaIndex-vs-Langchain\">\u003Cb>RAGMaster-LlamaIndex-vs-Langchain:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nIn this project, I compare the performance of `5` famous RAG techniques which have been proposed by Langchain and Llama-index. The test is being done on `40` questions on `5` different documents. Moreover, the projects provides `2` separate RAG chatbots that offer `8` RAG techniques from these two frameworks.\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=nze2ZFj7FCk&lc=UgxmsrbI9fLWmkgvD3N4AaABAg)\r\n\u003C\u002Fp>\r\n\u003C!-- ====================================== -->\r\n\u003C!-- Fine-tuning LLMs -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"Fine-tuning-LLMs\">\u003C\u002Fa>\r\n\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FLLM-Fine-Tuning\">\u003Cb>Fine-tuning LLMs:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nIn this project, we use a fictional company called Cubetriangle and design the pipeline to process its raw data, finetune `3` large language models (LLMs) on it, and design a chatbot using the best model.\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_g4o21A6AY8&t=1154s)\r\n\r\n**Libraries:** [huggingface](https:\u002F\u002Fpypi.org\u002Fproject\u002Fduckduckgo-search\u002F) - [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [chainlit](https:\u002F\u002Fdocs.chainlit.io\u002Fget-started\u002Foverview)\r\n\r\n\u003C\u002Fp>\r\n\u003C!-- ====================================== -->\r\n\u003C!-- WebGPT -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"WebGPT\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FWebGPT\">\u003Cb>WebGPT:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nWebGPT is a powerful tool enabling users to pose questions that require internet searches. Leveraging GPT models:\r\n\r\n* It identifies and executes the most relevant given Python functions in response to user queries. \r\n* The second GPT model generates responses by combining user queries with content retrieved from the web search engine. \r\n* The user-friendly interface is built using Streamlit.\r\n* The web search supports diverse searches such as text, news, PDFs, images, videos, maps, and instant responses. \r\n* Overcoming knowledge-cutoff limitations, the chatbot delivers answers based on the latest internet content.\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=55bztmEzAYU&t=739s)\r\n\r\n**Libraries:** [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) (It uses GPT model's function calling capability) - [duckduckgo-search](https:\u002F\u002Fpypi.org\u002Fproject\u002Fduckduckgo-search\u002F) - [streamlit](https:\u002F\u002Fdocs.streamlit.io\u002F)\r\n\u003C\u002Fp>\r\n\r\n\u003C!-- ====================================== -->\r\n\u003C!-- RAG-GPT -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"RAG-GPT\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FRAG-GPT\">\u003Cb>RAG-GPT:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nRAG-GPT is a chatbot that enables you to chat with your documents (PDFs and Doc). The chatbot offers versatile usage through three distinct methods:\r\n\r\n1. **Offline Documents**: Engage with documents that you've pre-processed and vectorized. These documents can be seamlessly integrated into your chat sessions.\r\n2. **Real-time Uploads:** Easily upload documents during your chat sessions, allowing the chatbot to process and respond to the content on-the-fly.\r\n3. **Summarization Requests:** Request the chatbot to provide a comprehensive summary of an entire PDF or document in a single interaction, streamlining information retrieval.\r\n\r\n**Libraries:** [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [Langchain](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002Fget_started\u002Fquickstart) - [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F) - [Gradio](https:\u002F\u002Fwww.gradio.app\u002Fguides\u002Fquickstart) \r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1FERFfut4Uw&t=3s)\r\n\u003C\u002Fp>\r\n\u003C!-- ====================================== -->\r\n\u003C!-- WebRAGQuery -->\r\n\u003C!-- ====================================== -->\r\n\u003Ca id=\"WebRAGQuery\">\u003C\u002Fa>\r\n\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FWebRAGQuery\">\u003Cb>WebRAGQuery: (Combining WebGPT and RAG-GPT)\u003C\u002Fb>\u003C\u002Fa>\r\n\u003Cp>\r\nWebRAGQuery is a chatbot that is built on the foundations of WebGPT and RAG-GPT, this project gives the users the ability to utilize the LLM's pretrained knowledge, Duckduckgo web search engine, and chatting with websites.\r\n\r\nKey Features:\u003C\u002Fbr>\r\n\r\n* **Intelligent Decision-Making:** The GPT model intelligently decides whether to answer user queries based on its internal knowledge base or execute relevant Python functions and access the internet.\r\n* **Web-Integrated Responses:** The second GPT model seamlessly combines user queries with content retrieved from web searches, providing rich and context-aware responses. WebRAGQuery supports a variety of searches, including text, news, PDFs, images, videos, maps, and instant responses.\r\n* **Website-Specific Queries:** When users inquire about a specific website, the model dynamically calls a function to load, vectorize, and create a vectordb from the site's content and therefore, gives the user the ability to ask questions about the content of the website. Users can query the content of the vectordb by starting their questions with ** and exit the RAG conversation by omitting ** from the query. ** can trigger the third GPT model for RAG Q&A.\r\n* **Website summarization:** On demand, this chatbot is able to go through a website and provide the user with a summary of the content.\r\n* **Memory:** WebRAGQuery boasts a memory feature that allows it to retain information about user interactions. This enables a more coherent and context-aware conversation by keeping track of previous questions and answers.\r\n* **Chainlit Interface:** The user-friendly interface is built using Chainlit.\r\n* **Overcoming Knowledge-Cutoff Limitations:** This chatbot transcends knowledge-cutoff limitations, providing answers based on the latest internet content and even allowing users to ask questions about webpage content.\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KoWjy5PZdX0&t=266s)\r\n\r\n**Libraries:** [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [Langchain](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002Fget_started\u002Fquickstart) - [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F) - [chainlit](https:\u002F\u002Fdocs.chainlit.io\u002Fget-started\u002Foverview)\r\n\u003C\u002Fp>\r\n## Tutorial description:\r\n\u003C!-- -------------------------------------- -->\r\n\u003C!-- LLM-function-calling-tutorial -->\r\n\u003C!-- -------------------------------------- -->\r\n\u003Ca id=\"LLM-function-calling-tutorial\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002Ftutorials\u002FLLM-function-calling-tutorial\">\u003Cb>LLM Function Calling Tutorial:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\n\r\nThis project showcases the capacity of GPT models to produce executable functions in JSON format. It illustrates this capability through a practical example involving the utilization of Python with the GPT model.\r\n\r\nLibraries: [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview)\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=P3bNGBTDiKM&t=3s)\r\n\u003C\u002Fp>\r\n\u003C!-- -------------------------------------- -->\r\n\u003C!-- LLM-function-calling-tutorial -->\r\n\u003C!-- -------------------------------------- -->\r\n\u003Ca id=\"Vectorization-Tutorial\">\u003C\u002Fa>\r\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002Ftutorials\u002Fvectorization_tutorial\">\u003Cb>Visualizing Text Vectorization:\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\r\n\u003Cp>\r\nThis project provides a comprehensive visualization of text vectorization and demonstrates the power of vector search. It further explores the vectorization on both OpenAi `text-embedding-ada-002` and the open source `BAAI\u002Fbge-large-zh-v1.5` model.\r\n\r\nLibraries: [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FBAAI\u002Fbge-large-zh-v1.5)\r\n\r\n**YouTube video:** [Link](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sxBr_afsvb0&t=454s)\r\n\u003C\u002Fp>\r\n\r\n**Slides:** [Link](https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fblob\u002Fmaster\u002Fpresentation\u002Fslides.pdf)\r\n\r\n## Running each project\r\nTo run the projects, you will need to install the required libraries. Follow the steps below to get started:\r\n\r\n1. Clone the repository and navigate to the project directory.\r\n```\r\ngit clone https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred.git\r\ncd LLM-Zero-to-Hundred\r\n```\r\n2. Create a new virtual environment using a tool like virtualenv or conda, and activate the environment:\r\n```\r\nconda create --name projectenv python=3.11\r\nconda activate projectenv\r\n```\r\n3. Change directory to your desired project and install the required libraries using the following commands:\r\nEx:\r\n```\r\ncd WebRAGQuery\r\npip install -r requirements.txt\r\n```\r\n","# LLM-从零到一百\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFarzad-R_LLM-Zero-to-Hundred_readme_dba120597f73.jpg\" alt=\"LOGO\">\n\u003C\u002Fdiv>\n本仓库展示了大型语言模型聊天机器人的多种应用场景，并提供了关于训练和微调语言模型的成熟方法的全面见解。\n\n[![YouTube教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-观看教程-red?style=for-the-badge&logo=youtube)](https:\u002F\u002Fwww.youtube.com\u002F@airoundtable)\n\n### 项目列表：\n- [x] [AI代理背后隐藏的技术债务](#Hidden-Technical-Debt-Behind-AI-Agents)\n- [x] [WebGPT](#WebGPT)\n- [x] [RAG-GPT](#RAG-GPT)\n- [x] [WebRAGQuery](#WebRAGQuery)\n- [x] [LLM全量微调](#Fine-tuning-LLMs)\n- [x] [RAG-Master：LlamaIndex vs Langchain](RAGMaster)\n- [x] [开源RAG-GEMMA](#Open-Source-RAG-GEMMA)\n- [x] [HUMAIN：高级多模态、多任务聊天机器人](#Multimodal-ChatBot)\n\n### 教程列表\n- [x] [LLM函数调用教程](#LLM-function-calling-tutorial)\n- [x] [向量化教程](#Vectorization-Tutorial)\n\n项目的通用结构：\n\n``` \n项目文件夹\n  ├── README.md           \u003C- 面向使用该项目的开发者的顶级README文件。\n  ├── HELPER.md           \u003C- 包含执行项目时可能有用的一些额外信息。\n  ├── .env                \u003C- 用于本地配置的dotenv文件。\n  ├── .here               \u003C- 项目根目录标记。\n  ├── configs             \u003C- 存放项目配置的yml文件。\n  ├── data                \u003C- 包含项目的示例数据。\n  ├── src                 \u003C- 包含用于执行项目的源代码。\n  |   └── utils           \u003C- 包含项目所需的所有模块。 \n  └── images              \u003C- 包含用户界面和README文件中使用的所有图片。 \n``` \n注意：这是项目的通用结构，但根据每个项目的具体需求，可能会有一些细微的调整。\n\n## 项目描述：\n\u003C!-- ====================================== -->\n\u003C!-- AI代理背后隐藏的技术债务 -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"Hidden-Technical-Debt-Behind-AI-Agents\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FHidden-Technical-Debt-Behind-AI-Agents\">\u003Cb>高级多模态聊天机器人：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n本项目涵盖的内容：\n\n- 基于LangGraph的智能体式聊天机器人\n- 使用真实数据库实现生产级设计\n- 微服务架构（Docker Compose）\n- 自动化向量数据库创建（容器内完成）\n- 使用Weave Scope进行可视化监控\n- 开发最佳实践\n\n**YouTube视频**：[链接](https:\u002F\u002Fyoutu.be\u002F9GxOsJ-kQtg?si=jVoVoQTZhT_6EUVp)\n\n\u003C!-- ====================================== -->\n\u003C!-- 高级多模态聊天机器人 -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"HUMAIN: Advanced Multimodal, Multitask Chatbot\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FHUMAIN-advanced-multimodal-chatbot\">\u003Cb>高级多模态聊天机器人：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n功能特点：\n\n- 类似ChatGPT的交互体验：聊天机器人可作为普通AI助手使用。\n- RAG（检索增强生成）能力：支持三种不同的RAG方式\n  1. 使用预处理文档\n  2. 用户在对话过程中上传的文档\n  3. 用户指定的任意网站内容\n- 图像生成：利用稳定扩散模型生成图像。\n- 图像理解：通过LLaVA模型理解图像内容，并根据图像信息回答用户问题。\n- DuckDuckGo集成：必要时调用DuckDuckGo搜索引擎，基于搜索结果提供答案。\n- 内容摘要：可根据用户请求总结网站内容或文档。\n- 文本与语音交互：支持文本和语音两种输入方式与机器人交互。\n- 记忆功能：聊天机器人中的GPT模型能够访问当前会话中用户的过往提问记录。\n\n注意：该聊天机器人基于RAG-GPT和WebRAGQuery项目构建。\n\n**YouTube视频**：[链接](https:\u002F\u002Fyoutu.be\u002FAAvqscJPXIY?si=Lu7DB07XXDzcFfKG)\n\n\u003C!-- ====================================== -->\n\u003C!-- 开源RAG-GEMMA -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"Open-Source-RAG-GEMMA\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FOpen-Source-RAG-GEMMA\">\u003Cb>开源RAG-GEMMA：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n在该项目中，我展示了如何将开源LLM部署到本地环境中。为此，我将RAG-GPT项目改造为一个完全开源的RAG聊天机器人。该开源聊天机器人采用Google Gemma7B LLM和BAAI\u002Fbge-large-en作为嵌入模型。\n\n**YouTube视频**：[链接](https:\u002F\u002Fyoutu.be\u002F6dyz2M_UWLw?si=phnTb9GRPx8RXFYp)\n\u003C!-- ====================================== -->\n\u003C!-- RAGMaster -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"RAGMaster\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FRAGMaster-LlamaIndex-vs-Langchain\">\u003Cb>RAGMaster - LlamaIndex vs Langchain：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n在该项目中，我比较了Langchain和Llama-index提出的5种著名RAG技术的性能。测试基于5份不同文档的40个问题展开。此外，该项目还提供了两个独立的RAG聊天机器人，分别实现了来自这两个框架的8种RAG技术。\n\n**YouTube视频**：[链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=nze2ZFj7FCk&lc=UgxmsrbI9fLWmkgvD3N4AaABAg)\n\u003C\u002Fp>\n\u003C!-- ====================================== -->\n\u003C!-- LLM微调 -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"Fine-tuning-LLMs\">\u003C\u002Fa>\n\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FLLM-Fine-Tuning\">\u003Cb>LLM微调：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n在该项目中，我们以一家名为Cubetriangle的虚构公司为例，设计了一条数据处理流水线，用于对其原始数据进行处理，并在此基础上对3个大型语言模型（LLM）进行微调，最终选择最佳模型构建聊天机器人。\n\n**YouTube视频**：[链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_g4o21A6AY8&t=1154s)\n\n**相关库**：[Hugging Face](https:\u002F\u002Fpypi.org\u002Fproject\u002Fduckduckgo-search\u002F) - [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [Chainlit](https:\u002F\u002Fdocs.chainlit.io\u002Fget-started\u002Foverview)\n\n\u003C\u002Fp>\n\u003C!-- ====================================== -->\n\u003C!-- WebGPT -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"WebGPT\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FWebGPT\">\u003Cb>WebGPT：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\nWebGPT是一款强大的工具，使用户能够提出需要互联网搜索的问题。它利用GPT模型：\n\n* 根据用户查询，识别并执行最相关的Python函数。\n* 第二个GPT模型结合用户查询和从网络搜索引擎获取的内容生成响应。\n* 友好易用的界面由Streamlit构建。\n* 网络搜索支持多种类型，包括文本、新闻、PDF、图片、视频、地图等，并能即时响应。\n* 克服知识截止期限制，聊天机器人能够基于最新的互联网内容提供答案。\n\n**YouTube视频**：[链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=55bztmEzAYU&t=739s)\n\n**相关库**：[OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview)（使用GPT模型的函数调用功能） - [duckduckgo-search](https:\u002F\u002Fpypi.org\u002Fproject\u002Fduckduckgo-search\u002F) - [streamlit](https:\u002F\u002Fdocs.streamlit.io\u002F)\n\u003C\u002Fp>\n\n\u003C!-- ====================================== -->\n\u003C!-- RAG-GPT -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"RAG-GPT\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FRAG-GPT\">\u003Cb>RAG-GPT：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\nRAG-GPT是一款聊天机器人，允许用户与其文档（PDF和Doc文件）进行对话。该机器人提供三种不同的使用方式：\n\n1. **离线文档**：与您预先处理并向量化过的文档互动。这些文档可以无缝融入您的对话会话中。\n2. **实时上传**：在对话过程中轻松上传文档，机器人可即时处理并回应文档内容。\n3. **摘要请求**：只需一次交互，即可请求机器人为您生成整份PDF或文档的综合摘要，从而简化信息获取流程。\n\n**相关库**：[OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [Langchain](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002Fget_started\u002Fquickstart) - [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F) - [Gradio](https:\u002F\u002Fwww.gradio.app\u002Fguides\u002Fquickstart)\n\n**YouTube视频**：[链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1FERFfut4Uw&t=3s)\n\u003C\u002Fp>\n\u003C!-- ====================================== -->\n\u003C!-- WebRAGQuery -->\n\u003C!-- ====================================== -->\n\u003Ca id=\"WebRAGQuery\">\u003C\u002Fa>\n\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002FWebRAGQuery\">\u003Cb>WebRAGQuery：（结合WebGPT和RAG-GPT）\u003C\u002Fb>\u003C\u002Fa>\n\u003Cp>\nWebRAGQuery是一款基于WebGPT和RAG-GPT构建的聊天机器人。该项目让用户能够同时利用LLM的预训练知识、DuckDuckGo网络搜索引擎以及与网站进行对话的能力。\n\n主要特点：\u003C\u002Fbr>\n\n* **智能决策**：GPT模型会智能判断是基于自身知识库回答用户问题，还是调用相关Python函数并访问互联网来获取答案。\n* **整合网络响应**：第二个GPT模型将用户查询与网络搜索结果无缝结合，提供丰富且上下文感知的回答。WebRAGQuery支持多种类型的搜索，包括文本、新闻、PDF、图片、视频、地图等，并能即时响应。\n* **网站特定查询**：当用户询问某个特定网站时，模型会动态调用函数加载该网站内容，将其向量化并创建向量数据库，从而使用户能够就网站内容提问。用户可以通过在问题前加上**来触发针对该网站向量数据库的RAG问答；若省略**，则退出RAG对话。**可触发第三个GPT模型进行RAG问答。\n* **网站内容摘要**：根据需求，该聊天机器人能够浏览整个网站并为用户提供内容摘要。\n* **记忆功能**：WebRAGQuery具备记忆功能，能够保留用户交互信息，从而通过跟踪之前的提问和回答，实现更连贯、更具上下文意识的对话。\n* **Chainlit界面**：友好的用户界面由Chainlit构建。\n* **突破知识截止期限制**：这款聊天机器人超越了知识截止期的限制，能够基于最新的互联网内容提供答案，甚至允许用户就网页内容提问。\n\n**YouTube视频**：[链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KoWjy5PZdX0&t=266s)\n\n**相关库**：[OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [Langchain](https:\u002F\u002Fpython.langchain.com\u002Fdocs\u002Fget_started\u002Fquickstart) - [ChromaDB](https:\u002F\u002Fwww.trychroma.com\u002F) - [chainlit](https:\u002F\u002Fdocs.chainlit.io\u002Fget-started\u002Foverview)\n\u003C\u002Fp>\n\n## 教程描述：\n\u003C!-- -------------------------------------- -->\n\u003C!-- LLM-函数调用教程 -->\n\u003C!-- -------------------------------------- -->\n\u003Ca id=\"LLM-函数调用教程\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002Ftutorials\u002FLLM-function-calling-tutorial\">\u003Cb>LLM 函数调用教程：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n\n该项目展示了 GPT 模型以 JSON 格式生成可执行函数的能力。通过一个结合 Python 与 GPT 模型的实际示例，直观地说明了这一功能。\n\n使用的库：[OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview)\n\n**YouTube 视频：** [链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=P3bNGBTDiKM&t=3s)\n\u003C\u002Fp>\n\u003C!-- -------------------------------------- -->\n\u003C!-- LLM-函数调用教程 -->\n\u003C!-- -------------------------------------- -->\n\u003Ca id=\"向量化教程\">\u003C\u002Fa>\n\u003Ch3>\u003Ca style=\" white-space:nowrap; \" href=\"https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Ftree\u002Fmaster\u002Ftutorials\u002Fvectorization_tutorial\">\u003Cb>文本向量化可视化：\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\n本项目全面展示了文本向量化的可视化过程，并演示了向量搜索的强大能力。此外，还分别使用 OpenAI 的 `text-embedding-ada-002` 和开源的 `BAAI\u002Fbge-large-zh-v1.5` 模型进行了向量化实验。\n\n使用的库：[OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fmodels\u002Foverview) - [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FBAAI\u002Fbge-large-zh-v1.5)\n\n**YouTube 视频：** [链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sxBr_afsvb0&t=454s)\n\u003C\u002Fp>\n\n**幻灯片：** [链接](https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fblob\u002Fmaster\u002Fpresentation\u002Fslides.pdf)\n\n## 运行每个项目\n要运行这些项目，您需要先安装所需的库。请按照以下步骤开始：\n\n1. 克隆仓库并进入项目目录。\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred.git\ncd LLM-Zero-to-Hundred\n```\n2. 使用 virtualenv 或 conda 等工具创建一个新的虚拟环境，并激活该环境：\n```bash\nconda create --name projectenv python=3.11\nconda activate projectenv\n```\n3. 切换到您想要运行的项目目录，并使用以下命令安装所需的库：\n例如：\n```bash\ncd WebRAGQuery\npip install -r requirements.txt\n```","# LLM-Zero-to-Hundred 快速上手指南\n\nLLM-Zero-to-Hundred 是一个综合性的开源项目集合，涵盖了从大语言模型（LLM）的微调、RAG（检索增强生成）、Agent 构建到多模态聊天机器人的完整开发流程。本指南将帮助你快速搭建环境并运行核心示例。\n\n## 1. 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows (推荐 WSL2)\n*   **Python**: 版本 3.9 或更高 (推荐 3.10+)\n*   **Git**: 用于克隆代码仓库\n*   **API Keys**: \n    *   **OpenAI API Key**: 大部分项目（如 WebGPT, RAG-GPT）依赖 OpenAI 模型。\n    *   **Hugging Face Token**: 如果使用开源模型（如 Gemma, LLava）需准备。\n*   **Docker & Docker Compose**: 部分高级项目（如 Hidden-Technical-Debt-Behind-AI-Agents）需要 Docker 环境。\n\n> **国内开发者提示**：\n> *   克隆仓库或下载模型时若遇网络问题，建议使用国内镜像源（如 Gitee 镜像站克隆代码，或使用 Hugging Face 国内镜像 `hf-mirror.com`）。\n> *   Python 包安装推荐使用清华源或阿里源加速。\n\n## 2. 安装步骤\n\n### 2.1 克隆项目\n首先将仓库克隆到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred.git\ncd LLM-Zero-to-Hundred\n```\n\n### 2.2 创建虚拟环境\n建议为每个子项目或整体环境创建独立的虚拟环境。以根目录为例：\n\n```bash\npython -m venv venv\n# Windows\nvenv\\Scripts\\activate\n# macOS\u002FLinux\nsource venv\u002Fbin\u002Factivate\n```\n\n### 2.3 安装依赖\n由于该项目包含多个独立子项目（如 `RAG-GPT`, `WebGPT`, `LLM-Fine-Tuning` 等），每个文件夹下可能有独立的 `requirements.txt`。\n\n**通用安装方式（针对特定子项目）：**\n假设你要运行 `RAG-GPT` 项目：\n\n```bash\ncd RAG-GPT\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**注意**：如果子目录下没有单独的 `requirements.txt`，请参考该目录下的 `HELPER.md` 或 `README.md` 获取具体的依赖列表。核心依赖通常包括：\n*   `openai`\n*   `langchain` \u002F `llama-index`\n*   `chromadb`\n*   `streamlit` \u002F `gradio` \u002F `chainlit`\n*   `torch` (如需微调或使用本地模型)\n\n### 2.4 配置环境变量\n在项目根目录或具体子项目目录下，复制环境变量模板文件：\n\n```bash\ncp .env.example .env\n```\n\n编辑 `.env` 文件，填入你的 API 密钥：\n\n```bash\nOPENAI_API_KEY=sk-your-openai-key-here\n# 如果使用其他服务，按需填写\nHUGGINGFACE_TOKEN=hf-your-token-here\n```\n\n## 3. 基本使用\n\n本项目包含多个独立应用，以下是两个最经典场景的快速启动示例。\n\n### 场景一：文档问答机器人 (RAG-GPT)\n此项目允许你上传 PDF\u002FDoc 文档并与之对话。\n\n1.  进入项目目录：\n    ```bash\n    cd RAG-GPT\n    ```\n2.  确保已安装依赖并配置好 `.env`。\n3.  启动应用（基于 Gradio）：\n    ```bash\n    python src\u002Fapp.py\n    # 或者根据具体文件结构运行\n    streamlit run src\u002Fapp.py \n    ```\n    *(注：具体启动命令请以该子目录下 `HELPER.md` 为准，通常为运行 `src` 下的主入口文件)*\n4.  在浏览器打开显示的本地地址（通常是 `http:\u002F\u002Flocalhost:7860` 或 `8501`）。\n5.  **使用方法**：\n    *   选择 \"Offline Documents\" 模式加载预处理数据，或直接拖拽上传新 PDF。\n    *   在对话框输入问题，例如：“总结这份文档的核心观点”。\n\n### 场景二：联网搜索助手 (WebGPT)\n此项目利用 Function Calling 让 LLM 能够实时搜索互联网。\n\n1.  进入项目目录：\n    ```bash\n    cd WebGPT\n    ```\n2.  安装依赖（需包含 `duckduckgo-search` 和 `streamlit`）：\n    ```bash\n    pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n3.  启动应用：\n    ```bash\n    streamlit run src\u002Fapp.py\n    ```\n4.  **使用方法**：\n    *   在聊天框输入需要实时信息的问题，例如：“今天特斯拉的股价是多少？”或“搜索最新的 AI 新闻”。\n    *   系统将自动调用搜索函数并整合结果返回答案。\n\n### 场景三：全量微调 (LLM Fine-Tuning)\n如果你想尝试训练自己的模型：\n\n1.  进入目录 `LLM-Fine-Tuning`。\n2.  准备数据：将你的训练数据放入 `data` 文件夹，格式需符合项目要求（通常为 JSONL）。\n3.  修改 `configs` 目录下的 YAML 配置文件，设置模型路径（如 `meta-llama\u002FLlama-2-7b`）和超参数。\n4.  运行微调脚本：\n    ```bash\n    python src\u002Ftrain.py --config configs\u002Fdefault.yaml\n    ```\n5.  训练完成后，使用生成的权重启动聊天机器人进行测试。\n\n---\n**提示**：每个子项目文件夹内均包含 `HELPER.md` 文件，其中记录了该项目特有的执行细节和注意事项，遇到问题时请优先查阅该文件。","某初创团队急需构建一个能处理内部文档、实时搜索网络并支持图文交互的企业级智能助手，但缺乏从零搭建复杂架构的经验。\n\n### 没有 LLM-Zero-to-Hundred 时\n- **架构设计混乱**：开发者需手动拼凑 LangChain、向量数据库和微服务容器，常因依赖冲突导致项目启动失败，陷入“技术债”泥潭。\n- **功能开发重复造轮子**：实现文件上传解析、网页实时检索（WebRAG）及图片理解（LLava）等功能需逐个摸索算法，耗时数周且稳定性差。\n- **多模态集成困难**：想要同时支持语音输入、文本对话和 Stable Diffusion 绘图，往往需要对接多个独立开源项目，接口标准不一，调试极其痛苦。\n- **缺乏生产级规范**：代码结构随意，缺少配置管理（.env\u002Fconfigs）和监控方案（如 Weave Scope），导致系统难以维护且无法直接部署上线。\n\n### 使用 LLM-Zero-to-Hundred 后\n- **一键复用成熟架构**：直接调用\"HUMAIN\"或\"AI Agents\"项目模板，基于 Docker Compose 的微服务架构和自动化向量库创建流程让环境搭建缩短至小时级。\n- **内置全场景能力**：利用预集成的 RAG-GPT 和 WebRAGQuery 模块，瞬间获得文档问答、联网搜索及图像理解能力，无需重写核心逻辑。\n- **多模态无缝协同**：通过现成的多任务聊天机器人框架，轻松整合语音交互、文生图及长文本摘要功能，确保各模块间数据流转顺畅。\n- **工程化最佳实践**：遵循项目标准的目录结构（src\u002Futils\u002Fconfigs），直接获得包含监控可视化和配置管理的生产级代码，大幅降低后期运维成本。\n\nLLM-Zero-to-Hundred 将原本需要数月研发的多模态企业级应用，转化为可立即部署的标准化工程，让团队从繁琐的基础设施搭建中解放出来专注于业务创新。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FFarzad-R_LLM-Zero-to-Hundred_47241fff.png","Farzad-R","Farzad Roozitalab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FFarzad-R_ddd99dec.jpg","Machine Learning Engineer",null,"Edmonton, Canada","Farzad_Rzt","https:\u002F\u002Ffarzad-r.github.io","https:\u002F\u002Fgithub.com\u002FFarzad-R",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",84.2,{"name":87,"color":88,"percentage":89},"Python","#3572A5",15.7,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0,{"name":95,"color":96,"percentage":93},"Dockerfile","#384d54",556,226,"2026-04-06T16:04:17",4,"未说明","部分项目（如 HUMAIN 使用 Stable Diffusion\u002FLLaVA，Open-Source-RAG-GEMMA 使用 Gemma7B）需要 GPU，具体型号和显存未说明；其他基于 OpenAI API 的项目无需本地 GPU。","未说明（运行本地大模型如 Gemma7B 通常建议 16GB+）",{"notes":105,"python":101,"dependencies":106},"该项目包含多个子项目，环境需求差异较大：1. 基于 OpenAI 的项目（WebGPT, RAG-GPT 等）主要依赖 API Key，对本地硬件无特殊要求；2. 开源项目（Open-Source-RAG-GEMMA, HUMAIN）需本地部署模型（如 Gemma7B, LLaVA, Stable Diffusion），建议使用支持 CUDA 的 NVIDIA GPU 并安装 PyTorch；3. 高级代理项目（Hidden-Technical-Debt）使用了 Docker Compose 和 Weave Scope，需安装 Docker 环境；4. 具体依赖版本请参考各子项目目录下的 requirements.txt 或配置文件。",[107,108,109,110,111,112,113,114,115,116],"langchain","llama-index","chromadb","openai","streamlit","gradio","chainlit","duckduckgo-search","langgraph","transformers (隐含用于开源模型)",[35,14,13,118],"其他","2026-03-27T02:49:30.150509","2026-04-08T01:09:04.516453",[122,127,132,137,142,146],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},23295,"安装依赖时出现 'ERROR: Could not find a version that satisfies the requirement bzip2' 错误怎么办？","该错误通常是因为 pip 无法找到特定构建版本的 bzip2。解决方法是使用 conda 单独安装 bzip2 包。运行命令：`conda install anaconda::bzip2`。安装完成后，再次运行 `pip install -r requirements.txt` 即可。此外，请确保检查项目中指定的 pydantic 版本，因为该库近期的更新可能导致兼容性问题。","https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fissues\u002F8",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},23296,"运行 Chainlit 时遇到 'Input should be a dictionary or an instance of MultiModalFeature' 报错如何解决？","此错误通常由 langchain_community 版本不兼容引起，而非 Python 版本问题。解决方案是从 requirements.txt 中移除 langchain_community，然后单独升级安装该库。执行命令：`pip install --upgrade langchain_community`。维护者建议在 Linux 上使用 Python 3.10.12，在 Windows 上使用 Python 3.11.9 以获得最佳兼容性。","https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fissues\u002F16",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},23297,"运行 upload_data_manually.py 后向量数据库中的向量数量为 0，无法上传自定义数据怎么办？","这通常是因为代码无法正确找到文档所在的文件夹路径。错误信息如 `NameError: name 'data' is not defined` 表明路径解析失败。请检查代码中是否使用了 `here()` 方法来定位目录，并确保项目根目录下存在正确的 `data\u002Fdocs` 文件夹。如果是路径硬编码问题，可以尝试将路径获取方式修改为显式路径，例如：`data_directory = here(\"data\u002Fdocs\")`，并确认该目录下包含需要加载的 PDF 文件。","https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fissues\u002F14",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},23298,"为什么在两个不同的浏览器窗口（或无痕模式）上传不同文档后，查询得到的回答却是相同的？","这表明会话状态未能在不同浏览器实例间独立保持，导致向量数据库检索到了错误的上下文。虽然具体代码修复未在评论中完全展开，但此类问题通常源于全局变量被共享或会话 ID 未正确隔离。建议检查后端存储机制，确保每个用户的会话拥有独立的向量索引或内存空间，避免不同用户上传的文档相互干扰。如果问题持续，请尝试重启后端服务并清除缓存后再测试。","https:\u002F\u002Fgithub.com\u002FFarzad-R\u002FLLM-Zero-to-Hundred\u002Fissues\u002F13",{"id":143,"question_zh":144,"answer_zh":145,"source_url":131},23299,"项目对 Python 版本有什么具体要求？","根据维护者的反馈，该项目在 Linux 环境下推荐使用 Python 3.10.12，在 Windows 环境下推荐使用 Python 3.11.9。虽然某些错误可能看似与 Python 版本有关，但实际上更多是由依赖库（如 langchain_community 或 pydantic）的版本冲突引起的。如果遇到兼容性问题，请优先尝试调整这些库的版本，而不是更改 Python 版本。",{"id":147,"question_zh":148,"answer_zh":149,"source_url":126},23300,"遇到 pydantic 相关的报错应该如何处理？","Pydantic 库近期进行了重大更新，改变了部分数据结构定义，这可能导致旧代码报错（例如将布尔值误判为字典类型）。维护者强调必须严格使用项目中指定的 pydantic 版本。如果遇到此类错误，请查看项目文档或视频教程中推荐的版本号，并使用 `pip install pydantic==\u003C指定版本>` 进行降级或升级匹配。不要随意使用最新版 pydantic，除非代码已相应更新。",[]]