문서

SDK 레퍼런스

Python 패키지는 호스티드 API 클라이언트와 projection 중심 워크플로우를 둘 다 내보냅니다. 먼저 어떤 경로가 필요한지 구분하는 것이 중요합니다.

진입점 선택

export역할주요 호출
Schift호스티드 API 클라이언트catalog, embed, routing, bench, db, query, rerank, usage
Client레거시 projection 클라이언트fit(), bench(), list_projections(), get_projection()
Projection완전한 로컬 변환 객체transform(), save(), load()
migrate() / client.migrate.run()어댑터 기반 재작성한 저장소에서 읽고 다른 저장소에 projection 결과를 씀

호스티드 API 모듈

pythonfrom schift import Schift

client = Schift()

client.routing.set(
    primary="openai/text-embedding-3-small",
    fallback="google/gemini-embedding-001",
    mode="failover",
)

documents = [
    {"id": "doc-1", "text": "분기 매출 보고서"},
    {"id": "doc-2", "text": "이사회 회의 요약"},
]

client.db.create_collection("finance-docs", dimension=3072)
client.db.upsert_text("finance-docs", documents, model="openai/text-embedding-3-large")
results = client.query("회의 요약", collection="finance-docs", rerank=True)
usage = client.usage.get(period="30d", granularity="day")
모듈공개 호출메모
cataloglist(), get(model_id)모델 메타데이터 조회
embedclient.embed(text, model, dimensions=None).batch(...)numpy.ndarray 반환
routingget(), set(primary=None, fallback=None, mode=None)서버에 저장되는 라우팅 정책
benchrun(source, target, data=None)API에서 BenchReport 반환
dbcreate_collection, list_collections, get_collection, collection_stats, delete_collection, upsert, upsert_text호스티드 컨렉션 작업
queryclient.query(query, collection=None, db=None, model=None, top_k=10, rerank=False, rerank_top_k=None)호출 가능한 모듈
rerankclient.rerank(query, documents, top_k=5)호출 가능한 모듈
usageget(period="30d", granularity=None)집계된 계정 사용량

projection 중심 워크플로우

pythonimport numpy as np
from schift import Client

legacy = Client(api_key="sch_your_key_here")

projection = legacy.fit(
    source=np.load("sample-old.npy"),
    target=np.load("sample-new.npy"),
    source_model="openai/text-embedding-3-small",
    target_model="google/gemini-embedding-001",
)

converted = projection.transform(np.load("all-old.npy"))
projection.save("./projection-openai-to-gemini")

어댑터와 저장소 간 마이그레이션

어댑터설치용도
NpyAdapter기본 포함오프라인 .npy 배열과 배치 결과
PgVectorAdapterpip install schift[postgres]PostgreSQL + pgvector 테이블
QdrantAdapterpip install schift[qdrant]Qdrant 컨렉션
pythonfrom schift import migrate
from schift.adapters.pgvector import PgVectorAdapter
from schift.adapters.qdrant import QdrantAdapter

result = migrate(
    source=PgVectorAdapter(
        conninfo="postgresql://user:pass@localhost/app",
        table="documents",
    ),
    sink=QdrantAdapter(
        url="http://localhost:6333",
        collection="documents-v2",
    ),
    projection=projection,
    dry_run=True,
)