前言
在AI开发日益火热的今天,如何让Claude AI更高效地调用各种API成为了开发者关注的焦点。传统方式下,每次调用一个新的API服务,我们都需要查阅文档、理解参数、编写调用代码,费时费力。特别是硅基流动(SiliconFlow)这样功能丰富的API平台,光是API文档就有数十个页面,手动整理成Claude能理解的技能包,少说也要几个小时。
Skill Seekers 是一个开源的自动化工具,它能够自动将任何文档网站、GitHub仓库和PDF文件转换成Claude AI可直接使用的技能包。核心原理是通过智能爬虫抓取文档内容,使用AI分析和归类,最终打包成标准的.zip技能文件。只需30分钟,就能完成从文档URL到Claude可用技能包的全流程转换。

Skill Seekers 通过统一多源抓取技术,突破了传统文档转换工具的瓶颈,实现文档+GitHub+PDF三合一,同时提供冲突检测功能,确保文档和代码的一致性。之前教大家使用官方提供的skill-creator 来实现 skills 生成。对之前skill-creator使用不熟悉的小伙伴可以看我之前的文章《Claude Skills 新玩法:用 skill-creator 10 分钟搞定 Excel 报表自动化,职场人必学》今天给大家介绍Skill Seekers 这个开源项目。
使用这个工具,体验一下自动生成硅基流动API技能包的能力。
项目介绍
✨ 核心特性
Skill Seekers 是一个功能强大的文档转技能工具,具备以下核心特性:
- 🌐 多源抓取: 支持文档网站、GitHub仓库、PDF文件三合一
- 🤖 AI 增强: 免费本地增强,使用Claude Code Max,无需API密钥
- ⚡ 高性能: 异步模式下2-3倍速度提升,处理500页文档仅需9分钟
- 🔍 冲突检测: 自动发现文档与代码之间的不一致,生成对比报告
- 📦 智能分类: 自动将内容归类为入门、API、教程等类别
- 🔧 MCP 集成: 9个工具直接集成到Claude Code,自然语言控制
- 💾 断点续传: 大型文档抓取支持中断恢复,永不丢失进度
- ✅ 生产就绪: 9,731行生产代码,372+测试函数,100%通过率

🛠️ 技术栈
核心依赖
- 语言: Python 3.10+
- HTML解析: BeautifulSoup4
- HTTP客户端: Requests/httpx
- 异步支持: async/await
高级功能
- GitHub API: PyGithub
- PDF提取: PyMuPDF + pytesseract(OCR)
- 图像处理: Pillow
- MCP协议: mcp (Model Context Protocol)
可选增强
- AI增强: anthropic (API模式)
- 测试: pytest (372+测试)
🎯 应用场景
- 开发者: 为常用框架(React、Vue、Django等)创建技能包
- 团队: 将内部文档+代码仓库合并为单一知识源
- 游戏开发: Godot、Unity引擎文档快速转换
- API服务: 快速为第三方API(如SiliconFlow)生成调用技能
- 学习者: 从文档+代码示例+PDF手册构建完整学习技能
📊 性能数据
根据官方测试数据,Skill Seekers 在不同规模文档下的性能表现:
| 文档规模 | 同步模式 | 异步模式 | 提升倍数 |
|---|---|---|---|
| React (~500页) | 28分钟 | 9分钟 | 3.1倍 |
| Godot (~2,000页) | 112分钟 | 37分钟 | 3倍 |
| Godot完整 (~40,000页) | 30+小时 | 4-8小时 | 节省75%+ |
部署实战
环境准备
我们首先需要确保 Skill Seekers 已经正确安装。本次实战演示在已安装好的环境中进行。
检查当前环境:
bash
# 查看是否已安装
ls -la ~/.claude/skills/

从截图可以看到,当前运行环境已经安装好 skill-seekers,我们可以直接使用。
如果你还没安装,请执行以下步骤:
bash
# 1. 克隆仓库
git clone https://github.com/yusufkaraaslan/Skill_Seekers.git
cd Skill_Seekers
# 2. 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. 安装依赖
pip install requests beautifulsoup4
# 4. 可选: 设置MCP集成
./setup_mcp.sh
准备硅基流动文档URL
在开始之前,我们先访问硅基流动的官方文档网站: docs.siliconflow.cn/cn/userguid...

硅基流动提供了丰富的文档资源,包括:
- 用户指南 - 基础使用说明
- 场景示例 - 实际应用案例
- API手册 - 详细的API接口文档
- 常见问题 - FAQ解答
- 更新公告 - 版本更新信息
- 条款与协议 - 使用条款
我们的目标: 将这些文档整合成一个技能包,以后在使用硅基流动API时,只需告诉Claude"使用硅基流动的DeepSeek模型生成文本",而无需每次都手动查找API文档、复制请求代码。
使用 Skill Seekers 生成技能包
准备好需要抓取的文档URL列表:
ruby
https://docs.siliconflow.cn/cn/userguide/introduction
https://docs.siliconflow.cn/cn/usercases/use-siliconcloud-in-ClaudeCode
https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions
https://docs.siliconflow.cn/cn/faqs/stream-mode
在Claude Code中输入提示词:
ruby
请使用Skill_Seekers 帮我把硅基流动的api文档
https://docs.siliconflow.cn/cn/userguide/introduction
https://docs.siliconflow.cn/cn/usercases/use-siliconcloud-in-ClaudeCode
https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions
https://docs.siliconflow.cn/cn/faqs/stream-mode
制作成一个硅基流动版本的skills技能。

从截图中可以看到,AI理解了我们的需求,开始通过fetch来获取硅基流动提供的API文档。
Skill Seekers 工作流程:
- URL验证 - 检查文档URL是否可访问
- 内容抓取 - 使用BFS遍历抓取所有相关页面
- 智能分类 - 根据URL、标题、内容关键词自动分类
- 代码提取 - 识别并提取代码示例(支持8+语言)
- AI增强 - 使用Claude分析并生成最佳实践
- 打包输出 - 生成标准.zip技能包
等待生成完成
整个过程大约需要几分钟时间,具体取决于文档数量和网络速度。

实际耗时参考:
- 小型文档(10-50页): 1-3分钟
- 中型文档(50-200页): 3-10分钟
- 大型文档(200-1000页): 10-30分钟
对于硅基流动API文档(约50页),实际耗时约5分钟。
查看生成结果
生成完成后,AI会输出3个文件:

从截图可以看到生成了:
- siliconflow.zip - 技能包压缩文件(可直接上传到Claude)
- siliconflow.json - 配置文件(记录抓取规则)
- generation_report.md - 生成报告(统计信息和质量分析)
让我们查看一下生成报告的内容:
bash
cat generation_report.md

技能包结构
解压 siliconflow.zip 查看内部结构:
bash
unzip -l siliconflow.zip
标准技能包结构:
bash
siliconflow/
├── SKILL.md # 主技能文件(500+行)
│ ├── 概述
│ ├── 何时使用此技能
│ ├── 快速参考(5-10个代码示例)
│ ├── 关键概念
│ ├── 常见模式
│ └── 导航指南
│
├── references/ # 分类文档
│ ├── index.md # 目录索引
│ ├── getting_started.md # 入门指南
│ ├── api_reference.md # API参考
│ ├── use_cases.md # 使用案例
│ └── faqs.md # 常见问题
│
├── scripts/ # 用户脚本(空)
└── assets/ # 用户资源(空)
技能包发布
安装技能包到 Claude
接下来我们把这个技能包部署发布。将 siliconflow.zip 解压并复制到 ~/.claude/skills 文件夹下。
在Claude Code中输入:
javascript
帮我把siliconflow.zip 技能包安装到~/.claude/skills 文件夹下

执行过程:
bash
# AI自动执行以下命令
unzip siliconflow.zip -d ~/.claude/skills/

安装成功后,技能包立即生效,无需重启Claude Code。
验证安装
检查技能是否正确安装:
bash
ls ~/.claude/skills/siliconflow/
应该看到:
- SKILL.md
- references/

查看主技能文件:
bash
head -50 ~/.claude/skills/siliconflow/SKILL.md
这将显示技能的前50行,包含概述、使用场景、快速参考等核心内容。
验证及测试
测试技能调用
接下来我们对这个技能包进行实战测试。让AI使用这个技能包生成调用硅基流动的API代码。
测试提示词:
请帮我使用siliconflow 这个skill技能包生成调用硅基流动的API 实现文本生成的模型接口,使用python 代码实现,
使用deepseek-ai/DeepSeek-V3.2-Exp 模型

AI 读取技能包
AI接收到请求后,会自动读取 siliconflow 技能包中的 api_reference.md 文件,理解API调用方式。

从截图可以看到,AI正在分析技能包中的API参考文档,提取关键信息:
- API endpoint:
https://api.siliconflow.cn/v1/chat/completions - 认证方式: Bearer Token
- 请求参数: model, messages, temperature, max_tokens等
- 响应格式: JSON
生成的完整代码
AI基于技能包生成了完整的Python代码,包含3种调用方式和多轮对话管理:
python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
硅基流动(SiliconFlow)API 文本生成接口
使用 DeepSeek-V3.2-Exp 模型
基于 SiliconFlow 技能包文档生成
API 文档: https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions
"""
import os
from openai import OpenAI
# ============================================================
# 配置部分
# ============================================================
# API 配置
API_KEY = os.getenv("SILICONFLOW_API_KEY", "YOUR_API_KEY")
BASE_URL = "https://api.siliconflow.cn/v1"
MODEL = "deepseek-ai/DeepSeek-V3.2-Exp"
# 初始化客户端
client = OpenAI(
api_key=API_KEY,
base_url=BASE_URL
)
# ============================================================
# 方式一:普通请求(非流式)
# ============================================================
def chat_completion(
messages: list,
model: str = MODEL,
temperature: float = 0.7,
max_tokens: int = 2048,
top_p: float = 0.7
) -> str:
"""
普通对话请求(非流式)
Args:
messages: 对话消息列表
model: 模型名称
temperature: 温度参数,控制随机性 (0-1)
max_tokens: 最大生成 token 数
top_p: 核采样参数
Returns:
生成的文本内容
"""
try:
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
top_p=top_p,
stream=False
)
return response.choices[0].message.content
except Exception as e:
print(f"请求错误: {e}")
raise
# ============================================================
# 方式二:流式请求(实时输出)
# ============================================================
def chat_completion_stream(
messages: list,
model: str = MODEL,
temperature: float = 0.7,
max_tokens: int = 2048,
top_p: float = 0.7
):
"""
流式对话请求
Args:
messages: 对话消息列表
model: 模型名称
temperature: 温度参数
max_tokens: 最大生成 token 数
top_p: 核采样参数
Yields:
生成的文本片段
"""
try:
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
top_p=top_p,
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
yield chunk.choices[0].delta.content
except Exception as e:
print(f"请求错误: {e}")
raise
# ============================================================
# 方式三:使用 requests 库直接调用 API
# ============================================================
def chat_completion_requests(
messages: list,
model: str = MODEL,
stream: bool = False,
temperature: float = 0.7,
max_tokens: int = 2048
):
"""
使用 requests 库直接调用 API
Args:
messages: 对话消息列表
model: 模型名称
stream: 是否启用流式输出
temperature: 温度参数
max_tokens: 最大生成 token 数
Returns:
生成的文本内容或流式响应
"""
import requests
url = f"{BASE_URL}/chat/completions"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": model,
"messages": messages,
"temperature": temperature,
"max_tokens": max_tokens,
"stream": stream
}
try:
if stream:
# 流式请求
response = requests.post(url, headers=headers, json=payload, stream=True)
response.raise_for_status()
for line in response.iter_lines():
if line:
line = line.decode('utf-8')
if line.startswith('data: '):
data = line[6:]
if data != '[DONE]':
import json
chunk = json.loads(data)
if chunk['choices'][0]['delta'].get('content'):
yield chunk['choices'][0]['delta']['content']
else:
# 非流式请求
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
result = response.json()
return result['choices'][0]['message']['content']
except requests.exceptions.RequestException as e:
print(f"请求错误: {e}")
raise
# ============================================================
# 高级功能:多轮对话
# ============================================================
class ChatSession:
"""多轮对话会话管理"""
def __init__(self, system_prompt: str = None, model: str = MODEL):
"""
初始化对话会话
Args:
system_prompt: 系统提示词
model: 模型名称
"""
self.model = model
self.messages = []
if system_prompt:
self.messages.append({
"role": "system",
"content": system_prompt
})
def chat(self, user_input: str, stream: bool = False, **kwargs):
"""
发送消息并获取回复
Args:
user_input: 用户输入
stream: 是否使用流式输出
**kwargs: 其他参数
Returns:
助手的回复
"""
# 添加用户消息
self.messages.append({
"role": "user",
"content": user_input
})
if stream:
# 流式输出
full_response = ""
for chunk in chat_completion_stream(self.messages, model=self.model, **kwargs):
print(chunk, end="", flush=True)
full_response += chunk
print()
# 保存助手回复
self.messages.append({
"role": "assistant",
"content": full_response
})
return full_response
else:
# 普通输出
response = chat_completion(self.messages, model=self.model, **kwargs)
# 保存助手回复
self.messages.append({
"role": "assistant",
"content": response
})
return response
def clear(self):
"""清空对话历史(保留系统提示词)"""
if self.messages and self.messages[0]["role"] == "system":
self.messages = [self.messages[0]]
else:
self.messages = []
def get_history(self):
"""获取对话历史"""
return self.messages.copy()
# ============================================================
# 使用示例
# ============================================================
def main():
"""主函数 - 演示各种使用方式"""
print("=" * 60)
print("硅基流动 API 文本生成示例")
print(f"模型: {MODEL}")
print("=" * 60)
# 示例消息
messages = [
{
"role": "system",
"content": "你是一个有帮助的 AI 助手。"
},
{
"role": "user",
"content": "请用简洁的语言解释什么是机器学习?"
}
]
# 示例 1: 普通请求
print("\n【示例 1】普通请求(非流式):")
print("-" * 40)
try:
response = chat_completion(messages)
print(response)
except Exception as e:
print(f"错误: {e}")
# 示例 2: 流式请求
print("\n【示例 2】流式请求:")
print("-" * 40)
try:
for chunk in chat_completion_stream(messages):
print(chunk, end="", flush=True)
print()
except Exception as e:
print(f"错误: {e}")
# 示例 3: 多轮对话
print("\n【示例 3】多轮对话:")
print("-" * 40)
try:
# 创建对话会话
session = ChatSession(
system_prompt="你是一个专业的 Python 编程助手。",
model=MODEL
)
# 第一轮对话
print("用户: 什么是列表推导式?")
print("助手: ", end="")
session.chat("什么是列表推导式?", stream=True)
# 第二轮对话(上下文相关)
print("\n用户: 能给我一个例子吗?")
print("助手: ", end="")
session.chat("能给我一个例子吗?", stream=True)
except Exception as e:
print(f"错误: {e}")
print("\n" + "=" * 60)
print("示例完成")
print("=" * 60)
# ============================================================
# 快速使用函数
# ============================================================
def quick_chat(prompt: str, stream: bool = True) -> str:
"""
快速对话函数
Args:
prompt: 用户输入
stream: 是否使用流式输出
Returns:
助手的回复
"""
messages = [
{"role": "user", "content": prompt}
]
if stream:
response = ""
for chunk in chat_completion_stream(messages):
print(chunk, end="", flush=True)
response += chunk
print()
return response
else:
return chat_completion(messages)
if __name__ == "__main__":
# 检查 API Key
if API_KEY == "YOUR_API_KEY":
print("⚠️ 请先设置 API Key!")
print("")
print("方式 1: 设置环境变量")
print(" export SILICONFLOW_API_KEY='your-api-key'")
print("")
print("方式 2: 直接修改代码中的 API_KEY 变量")
print("")
print("获取 API Key: https://cloud.siliconflow.cn/account/ak")
exit(1)
main()
实际运行测试
让我们运行一下这个代码,测试实际效果:
bash
# 设置API密钥
export SILICONFLOW_API_KEY='your-api-key-here'
# 运行测试
python siliconflow_api_test.py
预期输出:

markdown
============================================================
硅基流动 API 文本生成示例
模型: deepseek-ai/DeepSeek-V3.2-Exp
============================================================
【示例 1】普通请求(非流式):
----------------------------------------
机器学习是一种人工智能技术,通过让计算机从数据中学习规律和模式,
而不是通过明确编程来完成任务。简单来说,就是让机器通过大量数据
训练,自动提取特征并做出预测或决策。
【示例 2】流式请求:
----------------------------------------
机器学习是一种人工智能的分支,它使计算机系统能够从数据中学习并
改进性能,而无需显式编程...
【示例 3】多轮对话:
----------------------------------------
用户: 什么是列表推导式?
助手: 列表推导式是Python中一种简洁的创建列表的语法...
用户: 能给我一个例子吗?
助手: 当然!这里有一个简单的例子...
============================================================
示例完成
============================================================
完美运行!🎉
项目已经开源上传github上了 github.com/yusufkaraas... 需要的小伙伴可以自取

总结
今天我们通过Skill Seekers这个开源工具,成功将硅基流动的API文档转换成了Claude可直接使用的技能包,整个过程只用了不到10分钟,相比手动整理文档节省了数小时的工作时间。更重要的是,生成的技能包质量非常高,包含了完整的API参考、使用示例、最佳实践,AI基于这个技能包生成的代码完全可以直接用于生产环境,不需要任何修改。
Skill Seekers的核心价值在于自动化了文档到技能包的转换流程,支持文档网站、GitHub仓库、PDF文件三合一,还提供了智能冲突检测功能,能够自动发现文档和代码之间的不一致,这对于保证技能包的准确性非常重要。从技术实现角度来看,它采用了BFS遍历算法进行智能爬虫抓取,使用BeautifulSoup4解析HTML,支持异步模式下2-3倍速度提升,对于大型文档还提供了断点续传功能,9731行生产代码配合372+测试函数保证了100%测试通过率,这是一个生产就绪的工具。特别值得一提的是它的MCP集成功能,通过9个工具直接集成到Claude Code中,可以用自然语言控制整个流程,大大降低了使用门槛。对于开发者来说,无论是为常用框架(React、Vue、Django)创建技能包,还是将团队内部文档和代码仓库合并为单一知识源,或者像我们今天演示的为第三方API服务快速生成调用技能,Skill Seekers都是一个非常实用的工具。
项目完全开源,MIT许可证,代码质量高,文档详尽,还有活跃的社区支持,强烈推荐大家试用,相信你也会被它的效率和质量所打动。最后附上项目的GitHub地址和相关资源,感兴趣的小伙伴可以去star支持一下,有问题也可以在issues里提问,项目维护者响应很及时。希望这篇教程能帮助大家快速上手Skill Seekers,提升AI开发效率。今天的分享就到这里结束了,我们下篇文章见!