Show HN: Catsu: A unified Python client for embedding APIs
Posted by bhavnicksm 12 hours ago
We open-sourced catsu, a Python client for embedding APIs.
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.
Comments
Comment by zerodayz 11 hours ago
Comment by bhavnicksm 11 hours ago
Comment by lennertjansen 11 hours ago
Comment by bhavnicksm 11 hours ago
Comment by citcho 10 hours ago