Skip to main content

2 posts tagged with "tutorial"

View All Tags

自动抓取技术解析:让 AI 在你睡觉时同步数据

· 5 min read
Documentation Team

在 AI 应用开发中,数据同步往往是耗时且重复的工作。OpenHuman 的**自动抓取(Auto-fetch)**功能彻底改变了这一现状——系统会在你休息时自动完成数据同步,让你专注于更重要的任务。

什么是自动抓取?

自动抓取是 OpenHuman 提供的一种智能数据同步机制。它允许用户配置数据源后,系统会根据预设的调度策略自动拉取最新数据,无需人工干预。

核心特性

  • 定时调度:每 20 分钟自动执行一次数据抓取
  • 增量更新:仅获取新增或变更的数据,避免重复处理
  • 后台运行:与其他任务并行执行,不影响主流程
  • 自动重试:网络异常时自动重试,保证数据完整性

自动抓取的工作原理

自动抓取采用基于时间窗口的调度机制,确保数据始终保持新鲜。

调度周期

默认调度周期为 20 分钟,这意味着:

  1. 系统每 20 分钟检查一次配置的数据源
  2. 发现新数据时自动触发抓取流程
  3. 数据经过处理后写入目标存储

数据抓取流程

数据源 → 调度器(20分钟周期)→ 抓取引擎 → 数据处理 → 写入存储
  1. 配置阶段:用户设定需要抓取的数据源 URL 和认证信息
  2. 调度阶段:内置调度器按设定周期触发抓取任务
  3. 执行阶段:抓取引擎访问数据源,下载最新内容
  4. 处理阶段:对数据进行解析、清洗和格式转换
  5. 存储阶段:将处理后的数据写入本地知识库

20 分钟调度机制的优势

20 分钟是一个经过优化的周期,既能保证数据时效性,又不会对数据源造成过大压力。相比实时同步,它更加轻量;相比每日同步,它又能提供足够新鲜的数据。

支持自动抓取的数据源

OpenHuman 自动抓取功能支持多种主流数据源类型:

网页内容

  • 静态网页:HTML 页面自动解析
  • 动态内容:JavaScript 渲染页面支持
  • RSS/Atom:博客和新闻订阅源

文档格式

  • Markdown:直接解析并入库
  • PDF:文本提取后同步
  • Word 文档:docx 格式支持

API 接口

  • REST API:JSON 格式数据自动抓取
  • GraphQL:支持自定义查询的数据源

如何配置自动抓取

基础配置示例

const fetchConfig = {
url: 'https://api.example.com/data',
schedule: '*/20 * * * *', // 每20分钟
auth: {
type: 'bearer',
token: process.env.API_TOKEN
},
transform: (data) => {
return data.items.map(item => ({
id: item.id,
content: item.text,
timestamp: new Date(item.updatedAt)
}));
}
};

await client.autoFetch.create(fetchConfig);

调度策略自定义

如果 20 分钟的默认周期不满足需求,你可以调整调度频率:

// 每小时抓取一次
const hourlyConfig = {
schedule: '0 * * * *', // 每小时整点
// ...
};

// 每日凌晨抓取
const dailyConfig = {
schedule: '0 2 * * *', // 每天凌晨2点
// ...
};

自动抓取的最佳实践

1. 合理选择调度周期

根据数据源的更新频率选择合适的调度周期:

  • 高频更新源(如新闻、社交媒体):建议 15-20 分钟
  • 低频更新源(如文档、静态内容):建议 60 分钟或更长

2. 配置增量抓取

启用增量模式避免重复处理:

const config = {
// ... 其他配置
incremental: true,
lastFetchedAt: await getLastFetchTimestamp()
};

3. 错误处理与重试

配置自动重试机制保证稳定性:

const config = {
// ... 其他配置
retry: {
maxAttempts: 3,
backoff: 'exponential'
}
};

4. 监控抓取状态

定期检查抓取任务的执行状态:

const status = await client.autoFetch.getStatus(fetchId);
console.log(`上次抓取: ${status.lastRunAt}`);
console.log(`抓取结果: ${status.itemsFetched}`);
console.log(`状态: ${status.status}`);

常见问题

Q: 自动抓取会消耗很多资源吗?

不会。自动抓取采用轻量级调度机制,每次抓取任务完成后即释放资源。只有在调度周期触发时才会占用少量 CPU 和网络资源。

Q: 如果数据源需要认证怎么办?

OpenHuman 支持多种认证方式:API Key、Bearer Token、Basic Auth、OAuth 2.0,可根据数据源要求选择合适的认证方式。

Q: 可以同时配置多个数据源吗?

可以。系统支持并行抓取多个数据源,只需为每个数据源创建独立的抓取配置即可。

Q: 抓取失败了怎么办?

系统会自动记录失败原因,并在下一个调度周期重试。如果持续失败,会发送通知提醒你检查配置。

总结

OpenHuman 的自动抓取功能通过智能定时调度,让 AI 数据同步变得简单高效。20 分钟的默认调度周期在数据时效性和系统资源消耗之间取得了良好平衡,配合增量更新和自动重试机制,确保你的知识库始终保持最新状态。

立即配置自动抓取,让 AI 在你睡觉时为你完成数据同步工作。


想了解更多 OpenHuman 使用技巧?查看 OpenHuman Agent 设计模式 深入学习最佳实践。

OpenHuman 入门指南:从零开始创建您的第一个 Agent

· 2 min read

前提条件

在开始之前,请确保您具备以下条件:Node.js 18+ 已安装、OpenHuman 账号和 API 密钥、基础的 JavaScript 知识。

第一步:安装 SDK

打开终端,运行以下命令安装 OpenHuman SDK:

npm install openhuman-sdk

第二步:获取 API 密钥

  1. 访问 OpenHuman Dashboard
  2. 注册账号并登录
  3. 进入「设置」「API 密钥」
  4. 点击「创建新密钥」并复制

第三步:创建项目

创建一个新目录并初始化项目:

mkdir my-openhuman-agent
cd my-openhuman-agent
npm init -y
npm install openhuman-sdk dotenv

创建 .env 文件存储密钥:

OPENHUMAN_API_KEY=your_api_key_here

第四步:编写代码

创建 index.js 文件:

import 'dotenv/config';
import { OpenHuman } from 'openhuman-sdk';

const client = new OpenHuman({
apiKey: process.env.OPENHUMAN_API_KEY,
});

async function main() {
const agent = await client.agents.create({
name: '我的第一个助手',
description: '一个友好的问答助手',
instructions: '你是一个友好的助手,用简洁的语言回答用户问题。',
});

console.log('Agent 创建成功');
console.log('Agent ID:', agent.id);

const response = await client.agents.run(agent.id, {
message: '你好,请介绍一下你自己',
});

console.log('Agent 响应:', response.message);
}

main().catch(console.error);

第五步:运行

node index.js

常用操作

给 Agent 添加工具

const agent = await client.agents.create({
name: '研究助手',
instructions: '你是一个研究助手,帮助用户查找和分析信息。',
tools: ['web-search', 'calculator'],
});

管理会话

const session = await client.sessions.create({
agentId: agent.id,
});

await client.sessions.sendMessage(session.id, {
content: '你好',
});

const messages = await client.sessions.getMessages(session.id);

下一步

  • 阅读配置指南了解更多配置选项
  • 学习基本使用掌握更多功能
  • 探索高级功能

祝您开发愉快!