AX Flow SDK 명세서 v2.0 · 통합 파트너 검토용 — 정식 스키마는 /docs Swagger UI를 단일 기준으로 사용합니다.
Modes
C · Python SDK

호스트 인프라 안에서 외부 호출 없이 AX Flow를 운영하기 위한 패키지 형태이다. 사용자 데이터는 호스트 인프라 안에서만 처리된다. 패키지 내부적으로 모드 (A) MCP 서버를 임베드하여 동일한 도구·시그니처를 직접 호출한다.

4.1 패키지 구조

axflow/
├── client.py        # AXFlowClient — 검색·인입·그래프 진입점
├── ingest/          # 파일 인입 파이프라인
├── search/          # retriever 호출 래퍼
├── graph/           # 노드·엣지 조회/편집
└── governance/      # 권한·출처 메타 헬퍼

4.2 핵심 호출 (개념)

# 개념 예시. 실제 시그니처는 PoC 착수 시 함께 동기화한다.
from axflow import AXFlowClient
 
client = AXFlowClient(
    server="https://<host>",
    client_id="host-agent",
    client_secret="<client-secret>",
    scope="rag:read rag:write",
)
# SDK 가 내부에서 /api/v1/user/auth/token 호출 + access_token 갱신을 자동 처리
 
# 인입
job = client.ingest.upload("/path/to/contract.pdf", labels=["contract"])
client.ingest.wait(job.id)
 
# 검색 (retriever 와 동일 시그니처)
result = client.search.retriever(
    query="2026 1분기 NDA 만료일",
    mode="deep",      # smart | deep
    top_k=10,
)
print(result.content, result.score)
 
# 그래프
node = client.graph.get_entity("KakaoPay")

4.3 Pydantic 기반 시그니처 + 자동 문서 노출 (개발자 경험)

본 SDK 패키지는 0.1 자동 파생 원칙을 그대로 따른다. 핵심 도구의 입출력은 Pydantic 모델로 정의되며, 각 필드의 Field(description=...)가 SDK 메서드 시그니처·Swagger UI·MCP tools/list inputSchema에 동일하게 노출된다.

# 예 — RetrieverRequest 모델 (단일 정의 → 다중 노출면)
class RetrieverRequest(BaseModel):
    query: Annotated[str, Field(min_length=1, description="자연어 질의")]
    mode: Annotated[
        Literal["smart", "deep"],
        Field(description="smart: 균형(~0.9s). deep: 정밀(~3.2s), 재정렬 점수 채움."),
    ] = "smart"
    top_k: Annotated[int, Field(ge=1, le=100, description="그래프 엔티티·관계 최대 수")] = 10
    # ... 이하 2.2 표와 동일

호스트 LLM이 MCP tools/list 응답 (한 번의 핸드셰이크) 으로 도구 사용법을 학습하며, 도입사 개발자는 /docs 인터랙티브 UI로 동일 시그니처를 손에 들고 검증할 수 있다. SDK 클라이언트 라이브러리는 PoC 진입 후 OpenAPI 스펙(/openapi.json) 기반 자동 생성 또는 수기 wrapper 방식 중 도입사 측 선호에 맞춰 협의한다.

4.4 사내 배포 모드

배포 모드설명적합
Wheel 직접 배포axflow-x.y.z.whl 사내 배포내부망 폐쇄 환경
Private PyPI도입사 사내 PyPI 미러다수 팀 공동 사용
DockerSDK + 의존성 + 모델 함께 패키징GPU 노드 전용