综合介绍
Airweave 是一个开源工具,旨在通过同步用户的应用数据、API、数据库和网站到图谱和向量数据库,使任何应用程序变得可搜索。Airweave 简化了数据可搜索化的过程,无论是结构化数据还是非结构化数据,都可以通过 Airweave 进行处理、存储和检索。其核心功能包括数据同步、集成多种数据源、支持多种向量数据库等。Airweave 的设计目标是提供一个简单、可扩展且透明的解决方案,帮助用户轻松实现数据的语义搜索。
功能列表
- 数据同步:支持将用户的应用数据、API、数据库和网站数据同步到图谱和向量数据库。
- 多数据源集成:支持超过20种数据源的集成,持续增加中。
- 向量数据库支持:默认使用 Weaviate 实例,用户也可以配置自己的向量数据库。
- 无代码配置:用户无需编写代码即可通过几次点击完成应用程序的可搜索化。
- 异步处理:支持大规模数据同步的异步处理。
- 开源核心:核心功能开源,未来将提供更多高级商业功能。
使用帮助
安装流程
- 克隆仓库:
git clone https://github.com/airweave-ai/airweave.git
cd airweave
- 构建并运行:
chmod +x start.sh
./start.sh
运行上述命令后,Airweave 将在本地启动。
使用流程
前端使用
- 访问 React UI: 打开浏览器,访问
http://localhost:8080
。 - 添加新数据源: 导航到 "Sources" 页面,添加新的数据源。
- 配置同步计划: 在 "Schedules" 页面设置或查看同步计划。
- 监控同步任务: 在 "Jobs" 页面监控同步任务的状态。
API 使用
- 访问 Swagger 文档: 打开浏览器,访问
http://localhost:8001/docs
查看 API 文档。 - 获取所有数据源:
GET /sources
- 连接数据源:
POST /connections/{short_name}
高级配置
- 配置自定义向量数据库: 用户可以在应用程序 UI 或通过 API 配置自己的向量数据库。
- 异步客户端: Airweave 提供异步客户端,支持非阻塞调用 API。
import asyncio
from airweave import AsyncAirweaveSDK
client = AsyncAirweaveSDK(api_key="YOUR_API_KEY", base_url="https://yourhost.com/path/to/api")
async def main():
await client.api_keys.create_api_key()
asyncio.run(main())
异常处理
当 API 返回非成功状态码(4xx 或 5xx 响应)时,将抛出 ApiError 异常。
from airweave.core.api_error import ApiError
try:
client.api_keys.create_api_key()
except ApiError as e:
print(e.status_code)
print(e.body)
自动重试
SDK 配置了自动重试机制,默认重试次数为2次。用户可以通过 max_retries
选项配置重试行为。
client.api_keys.create_api_key(..., request_options={"max_retries": 1})
超时设置
SDK 默认超时时间为60秒,用户可以在客户端或请求级别配置超时。
client = AirweaveSDK(..., timeout=20.0)
client.api_keys.create_api_key(..., request_options={"timeout_in_seconds": 1})
自定义客户端
用户可以覆盖 httpx 客户端以支持代理和传输等自定义需求。
import httpx
from airweave import AirweaveSDK
client = AirweaveSDK(
...,
httpx_client=httpx.Client(proxies="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),
)