Python client for the Condensation.ai API
Project description
Condy: Python Client for Condensation.ai
A modern, async Python client library for interacting with the Condensation.ai API, providing seamless access to document processing and RAG (Retrieval-Augmented Generation) capabilities.
Features
- 🚀 Fully async implementation using
httpx
- 📄 Document processing and chunking
- 🔍 RAG (Retrieval-Augmented Generation) querying
- 💪 Type hints and modern Python practices
- ⚡ Efficient markdown processing and page management
- 🛡️ Comprehensive error handling
- 📝 Rich document metadata support
Installation
pip install condy
Quick Start
import asyncio
from condy import CondyClient
async def main():
# Initialize the client
client = CondyClient(api_key="your-api-key")
# Process a document from URL with metadata
doc_output = await client.process_document(
url="https://example.com/document.md",
filename="document.md",
file_key="custom-key",
public_url="https://example.com/document.md"
)
# Query the document using RAG
response = await client.query_rag(
question="What are the key points?",
document_id=doc_output.document_id
)
print(response.answer)
asyncio.run(main())
Core Features
Document Processing
# Upload pages directly with metadata
pages = {
1: "Page 1 content",
2: "Page 2 content"
}
doc_output = await client.upload_pages(
pages=pages,
filename="document.txt",
file_key="unique-identifier",
public_url="https://example.com/document.txt"
)
# Or process markdown from URL with metadata
doc_output = await client.process_document(
url="https://example.com/document.md",
filename="document.md",
file_key="doc-123",
public_url="https://example.com/document.md"
)
RAG Queries
# Query a document
response = await client.query_rag(
question="What does the document say about X?",
document_id="doc-id",
max_chunks=5
)
# Access the response
print(response.answer)
print(response.source_pages) # List of source pages used
Chunk Management
# Fetch document chunks
chunks = await client.fetch_chunks(
document_id="doc-id",
include_embeddings=False # Set to True to include vector embeddings
)
Configuration
The client can be configured with custom settings:
client = CondyClient(
api_key="your-api-key",
base_url="https://custom-url.example.com", # Optional
timeout=60.0 # Custom timeout in seconds
)
Document Metadata
The library supports rich document metadata:
# Process document with full metadata
doc_output = await client.process_document(
url="https://example.com/doc.pdf",
content_type="pdf",
filename="important-doc.pdf", # Optional: Custom filename
file_key="doc-2023-01", # Optional: Unique identifier
public_url="https://example.com/doc.pdf" # Optional: Public access URL
)
Error Handling
The library provides specific exceptions for different error cases:
NetworkError
: For connection and network-related issuesTimeoutError
: For request timeout issuesAPIError
: For API-specific errors with status codes and details
from condy import NetworkError, TimeoutError, APIError
try:
response = await client.query_rag(question="...", document_id="...")
except TimeoutError:
print("Request timed out")
except NetworkError:
print("Network error occurred")
except APIError as e:
print(f"API error: {e.status_code} - {e.detail}")
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
The usage of the library is subject to the Condensation.ai Terms of Service.
Support
For support, please contact support@condensation.ai.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file condy-0.2.6.tar.gz
.
File metadata
- Download URL: condy-0.2.6.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 189de9addbea730c57d75ee540e19a6d1a265ac23442b478a83dfc3372183db5 |
|
MD5 | 688c82073fe2e477a3787ce5720a0ced |
|
BLAKE2b-256 | ff912957643a111961b9199d7132ea9ebb7833c976d3d87a507ca3bb34c203cb |
File details
Details for the file condy-0.2.6-py3-none-any.whl
.
File metadata
- Download URL: condy-0.2.6-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5b5d78143b2b43859de2f11f87ec60ede868dffac88e4932981e54d46108dc5 |
|
MD5 | 7d1f156a24ab35d22065203cf2be59d5 |
|
BLAKE2b-256 | a94445bedb26ef835b3b150060b133439e086e70c3bdd8d7ed9a7da36a407c94 |