Show HN: Catsu: A unified Python client for embedding APIs
7 points| bhavnicksm | 2 months ago |catsu.dev
The problem: every embedding provider has a different SDK with different bugs. OpenAI has undocumented token limits. VoyageAI's retry logic was broken until September. Cohere breaks downstream libraries every release. LiteLLM's embedding support is minimal.
catsu provides:
- One API for 11 providers (OpenAI, Voyage, Cohere, Jina, Mistral, Gemini, etc.)
- Bundled database of 50+ models with pricing, dimensions, and benchmark scores
- Built-in retry with exponential backoff
- Automatic cost tracking per request
- Full async support
Example:
```python
import catsu
client = catsu.Client()
response = client.embed(model="voyage-3", input="Hello!")
print(f"Cost: ${response.embeddings}")
print(f"Cost: ${response.usage.cost:.6f}")
```
GitHub: https://github.com/chonkie-inc/catsu
We built this at Chonkie (YC X25) because we needed it badly for our chunking library and to easily switch embeddings for our search product. Apache 2.0.
zerodayz|2 months ago
bhavnicksm|2 months ago
lennertjansen|2 months ago
bhavnicksm|2 months ago
citcho|2 months ago