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. |