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