[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-VikParuchuri--textbook_quality":3,"tool-VikParuchuri--textbook_quality":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 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"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":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":75,"owner_location":76,"owner_email":77,"owner_twitter":72,"owner_website":78,"owner_url":79,"languages":80,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":100,"env_deps":101,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":141},7809,"VikParuchuri\u002Ftextbook_quality","textbook_quality","Generate textbook-quality synthetic LLM pretraining data","textbook_quality 是一款专为生成高质量大模型预训练数据而设计的开源工具。它核心解决了当前合成数据往往缺乏深度、结构松散，难以媲美真实教科书内容质量的痛点，能够自动生成篇幅长、逻辑严密且知识密度高的“教科书级”文本。\n\n该工具非常适合 AI 研究人员、大模型开发者以及需要构建垂直领域数据集的技术团队使用。其独特亮点在于引入了检索增强生成（RAG）机制：在生成内容前，它能自动调用 Serply 或 SerpAPI 等搜索引擎获取实时外部知识，从而显著提升生成内容的准确性和专业度。此外，textbook_quality 具备高度灵活性，不仅支持从零开始挖掘主题或利用种子话题进行扩展去重，还兼容 OpenAI 官方接口及 vLLM 等本地部署的开源模型。通过并行化处理架构，用户可以高效地批量生产特定领域的专业教材数据，为训练更强大的专用大模型奠定坚实基础。","# Textbook Quality\n\nThis project generates very long, textbook quality pretraining data.  [Here's](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fvikp\u002Ftextbook_quality_programming) a 70M token example.  It can run generations in parallel, against OpenAI, or your own API.  It can generate the topics from scratch, or use a set of seeds you provide.\n\nThe generator uses retrieval to improve quality.  By default, it will use [Serply](https:\u002F\u002Fserply.io) to do the retrieval, but you can also use [SerpAPI](https:\u002F\u002Fserpapi.com), or disable retrieval.\n\nThe core is extensible, so you can add your own adaptors to connect to new APIs and retrieval backends.\n\n# Installing\n\n## Prerequisites\n\n- Python 3.9+ (ideally 3.11)\n- You will need postgres installed. You can install it with `brew install postgres` on a Mac.\n\n## Setup\n\n- `psql postgres -c \"create database textbook;\"`\n- `git clone https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality.git`\n- `cd textbook_quality`\n- `poetry install`\n- `invoke migrate-dev`\n\n## Configuration\n\nFirst, create a `local.env` file in the root directory of the repo to store your secret keys.  Alternatively, you can set any key below as an env var.\n\nYou can see all the available configuration values in `app\u002Fsettings.py`.\n\n### With OpenAI and retrieval (highest quality)\n\n- Add your OpenAI key, like `OPENAI_KEY=sk-xxxxxx`\n- Add your serply key (`SERPLY_KEY=\"...\"`) or serpapi key (`SERPAPI_KEY=\"...\"`).\n- Add `SEARCH_BACKEND=serply` or `SEARCH_BACKEND=serpapi` to use the appropriate backend.\n\nBy default, this will use `gpt-3.5`.  You can use `gpt-4` by setting the env vars `LLM_TYPE`, `LLM_INSTRUCT_TYPE` to `gpt-4`.  You may be able to get away with setting `LLM_EXTENDED_TYPE` to `gpt-4` as well, but you may need longer than 8k context.\n\n### With vllm or other openai-compatible API and retrieval\n\n- Set `OPENAI_KEY` to the value of your API key, or a dummy value.\n- Set `OPENAI_BASE_URL` to the url of your API (like https:\u002F\u002Fvllm-api.com\u002Fv1)\n- Set the `LLM_TYPE`, `LLM_INSTRUCT_TYPE`, and `LLM_EXTENDED_TYPE` settings to your model name (like `llama`)\n- Set the model name and max tokens in the `LLM_TYPES` setting.\n- Follow the instructions above for the retrieval setup.\n\nThe generator ideally needs a context length of up to `16k`, but you can get away with `12k` if you need to.  If you've finetuned your own model for textbook gen (based on the prompts cached in this repo), you can use the `FINETUNED` and `INCLUDE_EXAMPLES` settings to reduce token usage.\n\n### Without retrieval\n\n- Set `SEARCH_BACKEND=none`\n\n# Usage\n\nThere are three main scripts in the repo.  You can run each script on the output of the previous one.  All outputs will appear by default in `app\u002Fdata`, which is the specified `DATA_DIR` in settings.\n\n## Generate topics from scratch\n\nYou enter a subject, a file you want to save the topics to, and the number of iterations.  The topics will be deduplicated.\n\nUsage example:\n\n`python topic_generator.py \"computer science with python\" python_cs_titles.json --iterations 50`\n\n## Augment topics from seeds\n\nTake a file with existing seeds (in a flat json list), and augment them.  You can pass in the output file from the topic generator as the seed file, or use your own seeds.  Domain is an optional flag to constrain the topics within a domain.\n\nThis will also deduplicate the topics semantically.\n\nUsage example:\n\n`python topic_augmentor.py python_titles.json python_topics.json --domain python`\n\n## Generate textbooks\n\n### From titles\n\nThis will take a file with a flat json list of topics, and generate one textbook per topic.  The workers flag controls the number of parallel generations.  Lower it if you hit rate limits.\n\nUsage example:\n\n`python book_generator.py topics.json books.jsonl --workers 5`\n\nYou can also override settings with environment variables (instead of using `local.env`).  This example will use a vllm api instead of openai:\n\n`LLM_TYPE=llama LLM_INSTRUCT_TYPE=llama LLM_EXTENDED_TYPE=llama OPENAI_KEY=\"llama\" OPENAI_BASE_URL=\"https:\u002F\u002Fvllm-api.com\u002Fv1\" python book_generator.py topics.json books.jsonl --workers 10`\n\nYou can see all options by running `python book_generator.py --help`.\n\nNote that courses are cached by default, so regenerating a course with the same name twice will not hit the API again.  The cache is specific to each model and each topic.  You can skip the cache by using the `--revision` option to specify a revision number for the courses.\n\n### From outlines\n\nYou can also generate a book from an existing outline by creating a jsonl file with the following fields:\n\n- `topic` - The topic\u002Ftitle of the book\n- `outline` - The outline of the book, as a flat json list.  This needs to be in a specific format, see \"clean table of contents\" below.\n- `queries` - Up to 2 search queries to use for retrieval.  If you don't want to use retrieval, set this to an empty list.\n\n## Clean tables of contents\n\nThis will take in a jsonl file with an existing table of contents and title, and process it into the correct format for book generation.\n\nUsage example:\n\n`python toc_cleaner.py toc.jsonl clean_toc.jsonl`\n\n`toc.jsonl` should have the following fields in each line:\n\n- `title` - The title of the book\n- `toc` - a string containing the table of contents.  This can be poorly formatted\n\n\n# Extending\n\nYou can extend this to add in new LLM adaptors, retrieval methods, or tasks.  PRs are very welcome.\n\n- LLM adapters are in `app\u002Fllm\u002Fadaptors`\n- Retrieval methods are in `app\u002Fservices\u002Fadaptors`.  You may also need to adjust settings in `services\u002Fgenerators\u002Fpdf.py`\n- Tasks are in `app\u002Fllm\u002Fgenerators`\n\n# Debugging\n\nBy default, a lot of exceptions will be hidden to avoid console noise.  Use `DEBUG=true` to display them, like this:\n\n`DEBUG=true python book_generator.py python_topics.json books.jsonl --max 5 --workers 5`","# 教材质量\n\n该项目生成非常长、具备教材质量的预训练数据。[这里](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fvikp\u002Ftextbook_quality_programming)提供了一个7000万标记的例子。它可以并行运行生成任务，调用OpenAI或其他您自己的API。它可以从头开始生成主题，也可以使用您提供的种子集。\n\n生成器利用检索来提升质量。默认情况下，它会使用[Serply](https:\u002F\u002Fserply.io)进行检索，但您也可以选择[SerpAPI](https:\u002F\u002Fserpapi.com)，或者直接禁用检索功能。\n\n该核心具有可扩展性，因此您可以添加自定义适配器，以连接新的API和检索后端。\n\n# 安装\n\n## 前置条件\n\n- Python 3.9及以上版本（推荐3.11）\n- 您需要安装PostgreSQL。在Mac上，可以通过`brew install postgres`命令进行安装。\n\n## 设置步骤\n\n- `psql postgres -c \"create database textbook;\"`\n- `git clone https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality.git`\n- `cd textbook_quality`\n- `poetry install`\n- `invoke migrate-dev`\n\n## 配置\n\n首先，在仓库根目录下创建一个`local.env`文件，用于存储您的密钥。此外，您也可以将以下任何配置项设置为环境变量。\n\n所有可用的配置选项均可在`app\u002Fsettings.py`中查看。\n\n### 使用OpenAI及检索功能（最高质量）\n\n- 添加您的OpenAI密钥，例如`OPENAI_KEY=sk-xxxxxx`\n- 添加您的Serply密钥（`SERPLY_KEY=\"...\"`）或SerpAPI密钥（`SERPAPI_KEY=\"...\"`）。\n- 设置`SEARCH_BACKEND=serply`或`SEARCH_BACKEND=serpapi`以使用相应的后端。\n\n默认情况下，此配置将使用`gpt-3.5`模型。若要使用`gpt-4`，请将环境变量`LLM_TYPE`和`LLM_INSTRUCT_TYPE`设置为`gpt-4`。您可能还可以将`LLM_EXTENDED_TYPE`设置为`gpt-4`，但可能需要超过8k的上下文长度。\n\n### 使用vllm或其他兼容OpenAI的API，并结合检索功能\n\n- 将`OPENAI_KEY`设置为您API的密钥值，或一个占位符。\n- 将`OPENAI_BASE_URL`设置为您API的URL（如`https:\u002F\u002Fvllm-api.com\u002Fv1`）。\n- 将`LLM_TYPE`、`LLM_INSTRUCT_TYPE`和`LLM_EXTENDED_TYPE`设置为您所使用的模型名称（如`llama`）。\n- 在`LLM_TYPES`设置中指定模型名称和最大标记数。\n- 按照上述检索设置的说明进行操作。\n\n生成器理想情况下需要最多`16k`的上下文长度，但如果必要，也可以使用`12k`。如果您已基于本仓库中缓存的提示微调了自己的模型用于教材生成，则可以使用`FINETUNED`和`INCLUDE_EXAMPLES`设置来减少标记用量。\n\n### 不使用检索功能\n\n- 将`SEARCH_BACKEND=none`。\n\n# 使用方法\n\n仓库中有三个主要脚本。您可以依次运行这些脚本，每个脚本的输出将成为下一个脚本的输入。所有输出默认会保存在`app\u002Fdata`目录下，这也是设置中指定的`DATA_DIR`。\n\n## 从零开始生成主题\n\n您需要输入一个主题、一个用于保存主题的文件名以及迭代次数。生成的主题将会被去重。\n\n使用示例：\n\n`python topic_generator.py \"计算机科学与Python\" python_cs_titles.json --iterations 50`\n\n## 基于种子扩充主题\n\n传入一个包含现有种子的文件（以扁平化的JSON列表形式），并对其进行扩充。您可以将主题生成器的输出文件作为种子文件，也可以使用您自己的种子。`domain`是一个可选参数，用于将主题限定在特定领域内。\n\n此过程还会对主题进行语义上的去重。\n\n使用示例：\n\n`python topic_augmentor.py python_titles.json python_topics.json --domain python`\n\n## 生成教材\n\n### 根据标题生成\n\n此脚本会读取一个包含扁平化JSON列表的主题文件，并为每个主题生成一本教材。`workers`参数控制并行生成的数量。如果遇到速率限制，请降低该值。\n\n使用示例：\n\n`python book_generator.py topics.json books.jsonl --workers 5`\n\n您也可以通过环境变量覆盖设置（而不是使用`local.env`）。以下示例将使用vllm API而非OpenAI：\n\n`LLM_TYPE=llama LLM_INSTRUCT_TYPE=llama LLM_EXTENDED_TYPE=llama OPENAI_KEY=\"llama\" OPENAI_BASE_URL=\"https:\u002F\u002Fvllm-api.com\u002Fv1\" python book_generator.py topics.json books.jsonl --workers 10`\n\n运行`python book_generator.py --help`即可查看所有选项。\n\n请注意，默认会缓存课程内容，因此如果使用相同的课程名称重新生成两次，不会再次调用API。缓存是针对每个模型和每个主题单独存储的。您可以通过使用`--revision`选项指定课程的修订号来跳过缓存。\n\n### 根据提纲生成\n\n您也可以通过创建一个包含以下字段的JSONL文件来根据现有提纲生成书籍：\n\n- `topic` - 书籍的主题\u002F标题\n- `outline` - 书籍的提纲，以扁平化的JSON列表形式呈现。格式需符合特定要求，详见下方“清理目录”部分。\n- `queries` - 最多2个用于检索的搜索查询。如果您不想使用检索功能，可将其设置为空列表。\n\n## 清理目录\n\n此脚本会读取一个包含现有目录和标题的JSONL文件，并将其处理成适合书籍生成的正确格式。\n\n使用示例：\n\n`python toc_cleaner.py toc.jsonl clean_toc.jsonl`\n\n`toc.jsonl`中的每一行应包含以下字段：\n\n- `title` - 书籍的标题\n- `toc` - 包含目录内容的字符串。该内容可能格式混乱。\n\n\n# 扩展\n\n您可以扩展此项目，添加新的LLM适配器、检索方法或任务。欢迎提交PR。\n\n- LLM适配器位于`app\u002Fllm\u002Fadaptors`\n- 检索方法位于`app\u002Fservices\u002Fadaptors`。您可能还需要调整`services\u002Fgenerators\u002Fpdf.py`中的设置。\n- 任务位于`app\u002Fllm\u002Fgenerators`。\n\n# 调试\n\n默认情况下，许多异常会被隐藏以避免控制台信息过于冗杂。您可以使用`DEBUG=true`来显示这些异常，例如：\n\n`DEBUG=true python book_generator.py python_topics.json books.jsonl --max 5 --workers 5`","# textbook_quality 快速上手指南\n\n`textbook_quality` 是一个用于生成高质量、长篇幅教科书级预训练数据的开源工具。它支持并行生成，可对接 OpenAI API 或本地兼容接口（如 vllm），并内置检索增强（RAG）机制以提升内容质量。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux 或 macOS（Windows 用户建议使用 WSL2）\n*   **Python 版本**：3.9+（推荐 3.11）\n*   **数据库**：必须安装 PostgreSQL\n    *   macOS 安装命令：`brew install postgres`\n    *   Linux (Ubuntu\u002FDebian) 安装命令：`sudo apt-get install postgresql postgresql-contrib`\n*   **包管理工具**：需安装 `poetry` 和 `invoke`\n    *   安装 Poetry: `curl -sSL https:\u002F\u002Finstall.python-poetry.org | python3 -`\n    *   安装 Invoke: `pip install invoke`\n\n> **提示**：国内开发者若遇到 `pip` 或 `poetry` 下载慢的问题，可配置清华源或阿里源加速。\n\n## 安装步骤\n\n1.  **初始化数据库**\n    创建一个名为 `textbook` 的数据库：\n    ```bash\n    psql postgres -c \"create database textbook;\"\n    ```\n\n2.  **克隆项目代码**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality.git\n    cd textbook_quality\n    ```\n\n3.  **安装依赖**\n    使用 Poetry 安装项目所需依赖：\n    ```bash\n    poetry install\n    ```\n\n4.  **执行数据库迁移**\n    初始化开发环境数据库结构：\n    ```bash\n    invoke migrate-dev\n    ```\n\n5.  **配置密钥**\n    在项目根目录创建 `local.env` 文件，填入必要的 API 密钥。\n    \n    *示例配置（使用 OpenAI + Serply 检索）：*\n    ```env\n    OPENAI_KEY=sk-xxxxxx\n    SERPLY_KEY=\"your_serply_key\"\n    SEARCH_BACKEND=serply\n    ```\n    *若使用国内大模型或本地部署（如 vllm），请参考 README 中的 \"With vllm\" 部分配置 `OPENAI_BASE_URL` 和模型名称。*\n\n## 基本使用\n\n该工具包含三个核心脚本，通常按顺序执行：**生成主题** -> **扩充主题** -> **生成教材**。所有输出默认保存在 `app\u002Fdata` 目录。\n\n### 1. 从零生成主题\n输入一个学科领域，自动生成去重后的主题列表。\n\n```bash\npython topic_generator.py \"computer science with python\" python_cs_titles.json --iterations 50\n```\n*   `\"computer science with python\"`：目标学科。\n*   `python_cs_titles.json`：输出的主题文件。\n*   `--iterations 50`：生成迭代次数。\n\n### 2. 基于种子扩充主题\n利用现有种子文件进一步扩充主题，并进行语义去重。\n\n```bash\npython topic_augmentor.py python_cs_titles.json python_topics.json --domain python\n```\n*   `python_cs_titles.json`：上一步生成的文件或自定义种子。\n*   `python_topics.json`：扩充后的输出文件。\n*   `--domain python`：可选，限制主题在特定领域内。\n\n### 3. 生成教科书\n根据主题列表并行生成教材内容。\n\n```bash\npython book_generator.py python_topics.json books.jsonl --workers 5\n```\n*   `python_topics.json`：主题输入文件。\n*   `books.jsonl`：生成的教材数据（JSONL 格式）。\n*   `--workers 5`：并行工作线程数（若触发频率限制请调小此值）。\n\n> **注意**：默认情况下课程生成结果会被缓存。若需强制重新生成，可添加 `--revision` 参数指定版本号。","某教育科技团队正致力于构建一个专为初学者设计的\"Python 数据科学”大语言模型，急需海量高质量、结构严谨的预训练语料来替代网络上杂乱无章的代码片段。\n\n### 没有 textbook_quality 时\n- **数据质量参差不齐**：只能从 GitHub 或技术博客爬取数据，内容充满碎片化代码、过时语法及未经验证的错误解答，导致模型学会“胡编乱造”。\n- **缺乏系统性逻辑**：收集的资料多为零散的问答或短文，缺少教科书般的章节递进与知识体系，模型难以掌握长程逻辑推理能力。\n- **清洗成本极高**：团队需耗费数周时间人工编写规则过滤噪声，且难以保证生成内容的语义连贯性和事实准确性。\n- **主题覆盖受限**：依赖现有网络资源，难以主动生成特定细分领域（如“基于 Pandas 的高级时间序列分析”）的深度教学内容。\n\n### 使用 textbook_quality 后\n- **生成教科书级语料**：利用检索增强生成（RAG）技术，自动结合最新文档生成逻辑严密、事实准确的长篇教学文本，显著提升数据纯净度。\n- **构建完整知识体系**：通过 `topic_generator` 从零构建大纲，再经 `book_generator` 输出结构完整的虚拟教材，确保模型学习到系统的知识脉络。\n- **自动化高效生产**：支持并行调用 OpenAI 或本地 vLLM 接口，几天内即可生成数千万 token 的高质量合成数据，大幅缩短数据准备周期。\n- **灵活定制垂直领域**：只需输入种子主题（如\"python_cs_titles.json\"），即可定向扩增并去重，精准覆盖团队需要的特定技术栈深度内容。\n\ntextbook_quality 将原本耗时数月的低质数据清洗工作，转变为可自动化控制的教科书级语料生产线，从根本上解决了垂直领域大模型“喂不饱、喂不好”的难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVikParuchuri_textbook_quality_daf927bb.png","VikParuchuri","Vik Paruchuri","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FVikParuchuri_be9d1b95.jpg",null,"Brooklyn, NY","github@vikas.sh","https:\u002F\u002Fwww.vikas.sh","https:\u002F\u002Fgithub.com\u002FVikParuchuri",[81,85,89],{"name":82,"color":83,"percentage":84},"Python","#3572A5",93.4,{"name":86,"color":87,"percentage":88},"Jinja","#a52a22",6.2,{"name":90,"color":91,"percentage":92},"Mako","#7e858d",0.5,509,47,"2026-03-16T18:25:06","MIT",4,"macOS, Linux, Windows","未说明 (主要依赖外部 API 如 OpenAI 或 vllm，本地无强制 GPU 要求)","未说明",{"notes":102,"python":103,"dependencies":104},"1. 必须安装并配置 PostgreSQL 数据库。2. 核心功能依赖外部 LLM API（如 OpenAI）或兼容接口（如 vllm），需自行配置 API Key 和 Base URL。3. 检索功能默认使用 Serply，也可配置 SerpAPI 或禁用。4. 若使用本地模型，建议上下文长度支持 12k-16k。5. 使用 Poetry 管理依赖，通过 invoke migrate-dev 初始化数据库。","3.9+ (推荐 3.11)",[105,106,107],"poetry","invoke","psql (PostgreSQL)",[16,35,15,13,14],[110,111,112],"ai","dataset","llm","2026-03-27T02:49:30.150509","2026-04-16T01:44:49.165763",[116,121,126,131,136],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},34970,"运行 `invoke migrate-dev` 时出现密码认证失败（password authentication failed）错误怎么办？","这通常是因为当前用户没有配置 PostgreSQL 的免密访问。解决方法是修改项目根目录下的 `local.env` 文件，添加或修改 `DATABASE_URL` 配置项，显式指定用户名和密码。格式如下：\n\nDATABASE_URL=\"postgresql:\u002F\u002F{user}:{passwd}@localhost\u002Ftextbook\"\n\n请将 {user} 替换为您的 PostgreSQL 用户名，{passwd} 替换为您的密码。","https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality\u002Fissues\u002F9",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},34971,"该项目是否支持处理自定义文档（如 PDF、TXT），而不仅仅是 URL？","目前主分支主要支持 URL，但在 `dev` 分支中已推送了一个实验性功能，允许使用自定义搜索服务进行检索。您可以编写自定义的检索后端（custom retrieval backend）来从 PDF 或 TXT 等文件中检索数据。现有的检索服务代码位于 `services\u002Fadapators` 目录下，可以参考该结构自行扩展实现。","https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality\u002Fissues\u002F1",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},34972,"这个项目是论文《Textbooks Are All You Need》的复现吗？","不完全是直接复现。该项目主要用于生成合成数据（synthetic data），这些数据可以用于训练 Phi 模型的复现版本，或者用于一般的模型预训练（pretrain models）。","https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality\u002Fissues\u002F11",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},34973,"能否使用该工具生成 ABAP 代码示例并用于微调 LLAMA 代码模型？","不能直接用于此目的。该工具专为生成预训练数据（pretraining data）设计，其生成的数据格式类似于教科书内容，而非专门针对指令微调（instruction format）的代码样本。","https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality\u002Fissues\u002F7",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},34974,"使用 Python 3.9 运行时遇到 `SyntaxError: invalid syntax` 或 `TypeError` 怎么办？","该项目需要 Python 3.10 或更高版本。错误原因是代码中使用了 Python 3.10 引入的新特性，例如 `match-case` 语句和 `datetime | None` 联合类型语法。在 Python 3.9 中这些语法无效。请升级您的 Python 环境至 3.10+ 以解决此问题。","https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftextbook_quality\u002Fissues\u002F13",[]]