Spaces:
Sleeping
Sleeping
| title: E2B API Proxy | |
| emoji: ๐ | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| pinned: false | |
| app_port: 7860 | |
| # E2B API Proxy with FastAPI | |
| This project is a FastAPI implementation of an API proxy for E2B (fragments.e2b.dev). It provides a compatible interface for various AI model providers including OpenAI, Google, and Anthropic. | |
| ## Description | |
| The E2B API Proxy acts as a middleware between your application and the E2B service, providing: | |
| - Proxy API requests to E2B service | |
| - Support for multiple AI models (OpenAI, Google Vertex AI, Anthropic) | |
| - Streaming and non-streaming response handling | |
| - CORS support for cross-origin requests | |
| ## Deployment on Hugging Face Spaces | |
| This application is ready to be deployed on Hugging Face Spaces: | |
| 1. Create a new Space on Hugging Face with Docker SDK | |
| 2. Upload these files to your Space | |
| 3. Set the environment variables in the Space settings: | |
| - `API_KEY`: Your API key for authentication (default: sk-123456) | |
| - `API_BASE_URL`: The base URL for the E2B service (default: https://fragments.e2b.dev) | |
| ## API Endpoints | |
| - `GET /hf/v1/models`: List available models | |
| - `POST /hf/v1/chat/completions`: Send chat completion requests | |
| - `GET /`: Root endpoint (health check) | |
| ## Configuration | |
| The main configuration is in the `app.py` file. You can customize: | |
| - API key for authentication | |
| - Base URL for the E2B service | |
| - Model configurations | |
| - Default headers for requests | |
| ## Local Development | |
| ### Prerequisites | |
| - Docker and Docker Compose | |
| ### Running the Application Locally | |
| 1. Clone this repository | |
| 2. Update the API key in docker-compose.yml (replace `sk-123456` with your actual key) | |
| 3. Build and start the container: | |
| ```bash | |
| docker-compose up -d | |
| ``` | |
| 4. The API will be available at http://localhost:7860 | |
| ### Testing the API | |
| You can test the API using curl: | |
| ```bash | |
| # Get available models | |
| curl http://localhost:7860/hf/v1/models | |
| # Send a chat completion request | |
| curl -X POST http://localhost:7860/hf/v1/chat/completions \ | |
| -H "Content-Type: application/json" \ | |
| -H "Authorization: Bearer sk-123456" \ | |
| -d '{ | |
| "model": "gpt-4o", | |
| "messages": [ | |
| {"role": "user", "content": "Hello, how are you?"} | |
| ] | |
| }' | |
| ``` | |
| ## Supported Models | |
| The API supports various models from different providers: | |
| - **OpenAI**: o1-preview, o3-mini, gpt-4o, gpt-4.5-preview, gpt-4-turbo | |
| - **Google**: gemini-1.5-pro, gemini-2.5-pro-exp-03-25, gemini-exp-1121, gemini-2.0-flash-exp | |
| - **Anthropic**: claude-3-5-sonnet-latest, claude-3-7-sonnet-latest, claude-3-5-haiku-latest | |
| ## License | |
| This project is open source and available under the MIT License. |