Packages

A spec-compliant Open Responses server for Elixir and Phoenix, with pluggable provider adapters and first-class streaming.

Current section

Files

Jump to
open_responses lib open_responses.ex
Raw

lib/open_responses.ex

defmodule OpenResponses do
@moduledoc """
OpenResponses — a spec-compliant Open Responses server for Elixir/Phoenix.
## Quick start
Start your Phoenix server and send requests to `POST /v1/responses`:
```bash
curl http://localhost:4000/v1/responses \\
-H "Content-Type: application/json" \\
-d '{"model":"gpt-4o","input":[{"role":"user","content":"Hello!"}]}'
```
Provider credentials and routing live in config — see
`OpenResponses.Adapter` and the [Providers guide](providers.html).
## Extension points
| What you want to do | Module to implement |
|---|---|
| Execute a tool server-side (no client round-trip) | `OpenResponses.Tool` |
| Build a custom provider adapter | `OpenResponses.Adapter` |
| Intercept the loop for logging, budgets, rate limits | `OpenResponses.Middleware` |
## Built-in adapters
| Provider | Adapter module |
|---|---|
| OpenAI | `OpenResponses.Adapters.OpenAI` |
| Anthropic / z.ai | `OpenResponses.Adapters.Anthropic` |
| Google Gemini | `OpenResponses.Adapters.Gemini` |
| Ollama (local) | `OpenResponses.Adapters.Ollama` |
| Testing / mock | `OpenResponses.Adapters.Mock` |
## Guides
- [Overview](overview.html)
- [Getting Started](getting_started.html)
- [Providers](providers.html)
- [Streaming](streaming.html)
- [Tool Dispatch](tool_dispatch.html)
- [Conversation History](conversation_history.html)
- [Middleware](middleware.html)
- [MCP Integration](mcp_integration.html)
- [Observability](observability.html)
- [Configuration Reference](configuration_reference.html)
- [Deploying](deploying.html)
"""
end