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