ragcore-sdk
Typed Python client for RAGCore's /v1/search, /v1/context, and
/v1/answers endpoints.
from ragcore_sdk import RAGCoreClient
with RAGCoreClient(base_url="https://ragcore.example.internal", token="...") as client:
response = client.search(query="What is the refund policy?")
for result in response.results:
print(result.rank, result.citation.source_uri)
Streaming answers:
import asyncio
from ragcore_sdk import AsyncRAGCoreClient
async def main() -> None:
async with AsyncRAGCoreClient(base_url="https://ragcore.example.internal", token="...") as client:
async for event in client.answer_stream(query="What is the refund policy?"):
print(event.type, event.data)
asyncio.run(main())
Scope
This SDK covers exactly the endpoints RAGCore actually implements:
search, context, and answers (sync and SSE-streaming). It does not
expose get_citation/get_job methods — those paths exist only in the
aspirational OpenAPI contract, not as real routes in this codebase, so
the SDK does not fabricate a client surface for them.
Errors
Every non-2xx response RAGCore returns is an RFC7807 Problem Details body.
The SDK raises RAGCoreAPIError (carrying the parsed ProblemDetails) for
those, and RAGCoreConnectionError for network-level failures that
persist after retries are exhausted. Retries only ever apply to this
SDK's own read-only, side-effect-free requests (search/context/answers are
GET-equivalent queries) on connection failures and 503 responses --
never on 4xx client errors.
The bearer token is never logged or included in exception messages.