일반 소개
Airweave는 사용자의 애플리케이션 데이터, API, 데이터베이스, 웹사이트를 그래프 및 벡터 데이터베이스에 동기화하여 모든 애플리케이션을 검색할 수 있도록 설계된 오픈 소스 도구로, 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
. - 새 데이터 소스 추가: '소스' 페이지로 이동하여 새 데이터 소스를 추가합니다.
- 동기화 일정 구성: 일정 페이지에서 동기화 일정을 설정하거나 확인합니다.
- 동기화 작업 모니터링: 작업 페이지에서 동기화 작업의 상태를 모니터링합니다.
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")),
)
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...