|
1 | | -# openai-responses-server |
2 | | -A server the serves any AI provider with OpenAI ChatCompletions as OpenAI's Responses API and hosted tools. |
3 | | -I means it manages the stateful component of Responses API, and bridges Ollama, Vllm, LiteLLM and any other AI serving library. |
4 | | -This means you can use OpenAI's new coding assistant "Codex", that needs Responses API endpoints. |
| 1 | +# 🚀 openai-responses-server |
5 | 2 |
|
6 | | -It is still missing some features, but I would appreciate your support in stars, issues, suggestions and even pull requests if you are inclined for it. |
| 3 | +A plug-and-play server that speaks OpenAI’s Responses API—no matter which AI backend you’re running. |
7 | 4 |
|
8 | | -I verified it works in my main repo, in my [demo AI assistant that can hear, think and speak](https://github.com/OriNachum/autonomous-intelligence/tree/main/baby-tau) with the docker-compose-codex.yaml |
| 5 | +Ollama? vLLM? LiteLLM? Even OpenAI itself? |
| 6 | +This server bridges them all to the OpenAI ChatCompletions & Responses API interface. |
9 | 7 |
|
10 | | -Install today via pip: [openai-responses-server](https://pypi.org/project/openai-responses-server) |
| 8 | +In plain words: |
| 9 | +👉 Want to run OpenAI’s Coding Assistant (Codex) or other OpenAI API clients against your own models? |
| 10 | +👉 Want to experiment with self-hosted LLMs but keep OpenAI’s API compatibility? |
11 | 11 |
|
12 | | -# Roadmap |
| 12 | +This project makes it happen. |
| 13 | +It handles stateful chat, tool calls, and future features like file search & code interpreter—all behind a familiar OpenAI API. |
13 | 14 |
|
14 | | -- [x] Tool run support (Tested with llama 3.2 3b on Ollama) |
15 | | -- [x] Validate work from CLI |
16 | | -- [ ] dotenv support |
17 | | -- [x] Tests |
18 | | - - [x] Manual |
19 | | - - [x] Pipelines |
20 | | -- [ ] Deployments |
21 | | - - [x] Pypi package |
22 | | - - [ ] Docker image |
23 | | -- [ ] State management (long term, not just in-memory) |
24 | | -- [ ] **Web search support ([crawl4ai](https://github.com/unclecode/crawl4ai))** |
25 | | -- [ ] File upload + search |
26 | | - - [ ] **[graphiti](https://github.com/getzep/graphiti) (based on neo4j)** |
27 | | -- [ ] Code interpreter |
28 | | -- [ ] Computer use |
| 15 | +⸻ |
29 | 16 |
|
30 | | -# OpenAI API Configuration |
| 17 | +# ✨ Why use this? |
31 | 18 |
|
32 | | -OPENAI_BASE_URL_INTERNAL=# Your AI Provider host api. localhost for Ollama, Groq and even OpenAI |
33 | | -OPENAI_BASE_URL=http://localhost:8080 # IP and port of your openai-responses-server (ORS) |
34 | | -OPENAI_API_KEY=sk-mockapikey123456789abcdefghijklmnopqrstuvwxyz # For Ollama, this should be mock. The key is tunneled to the provider |
| 19 | +✅ Acts as a drop-in replacement for OpenAI’s Responses API. |
| 20 | +✅ Lets you run any backend AI (Ollama, vLLM, Groq, etc.) with OpenAI-compatible clients. |
| 21 | +✅ Supports OpenAI’s new Coding Assistant / Codex that requires Responses API. |
| 22 | +✅ Already battle-tested inside baby-tau: an autonomous AI assistant. |
| 23 | +✅ Built for hackers, tinkerers, researchers, OSS enthusiasts. |
35 | 24 |
|
36 | | -# Server Configuration |
| 25 | +⸻ |
37 | 26 |
|
38 | | -API_ADAPTER_HOST=0.0.0.0 |
39 | | -API_ADAPTER_PORT=8080 |
40 | | - |
41 | | -# Logging Configuration (optional) |
| 27 | +# 🏗️ Quick Install |
42 | 28 |
|
43 | | -LOG_LEVEL=INFO |
44 | | -LOG_FILE_PATH=./log/api_adapter.log |
| 29 | +Latest release on PyPI: |
45 | 30 |
|
46 | | -# Installation |
| 31 | +``` |
| 32 | +pip install openai-responses-server |
| 33 | +``` |
47 | 34 |
|
48 | | -## UV cli |
49 | | -Install uv if not installed yet. |
50 | | -From: https://docs.astral.sh/uv/getting-started/installation/#standalone-installer |
| 35 | +Or install from source: |
51 | 36 |
|
52 | | -```python |
53 | | -pip install uv |
| 37 | +``` |
| 38 | +uv venv |
| 39 | +uv pip install . |
| 40 | +uv pip install -e ".[dev]" # dev dependencies |
54 | 41 | ``` |
55 | 42 |
|
56 | | -```bash |
57 | | -curl -LsSf https://astral.sh/uv/install.sh | sh |
| 43 | +Run the server: |
| 44 | + |
58 | 45 | ``` |
59 | | -or |
60 | | -```powershell |
61 | | -powershell -c "irm https://astral.sh/uv/install.ps1 | more" |
| 46 | +uv run src/openai_responses_server/cli.py start |
62 | 47 | ``` |
63 | 48 |
|
64 | | -Setup environment with: |
65 | | -``` |
66 | | -uv venv |
67 | | -``` |
| 49 | +Works great with docker-compose.yaml for Codex + your own model. |
| 50 | + |
| 51 | +⸻ |
| 52 | + |
| 53 | +🔥 What’s in & what’s next? |
| 54 | + |
| 55 | +✅ Done 📝 Coming soon |
| 56 | +- ✅ Tool call support .env file support |
| 57 | +- ✅ Manual & pipeline tests |
| 58 | +- ✅ Docker image build |
| 59 | +- ✅ PyPI release |
| 60 | +- 📝 Persistent state (not just in-memory) |
| 61 | +- ✅ CLI validation |
| 62 | +- 📝 hosted tools: |
| 63 | + - 📝 MCPs support |
| 64 | + - 📝 Web search: crawl4ai |
| 65 | + - 📝 File upload + search: graphiti |
| 66 | + - 📝 Code interpreter |
| 67 | + - 📝 Computer use APIs |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | +⸻ |
| 72 | + |
| 73 | +# 🛠️ Configure |
| 74 | + |
| 75 | +Minimal config to connect your AI backend: |
68 | 76 |
|
69 | | -Install dependecies with uv |
70 | 77 | ``` |
71 | | -uv pip install . |
72 | | -uv pip install -e ".[dev]" # for development |
| 78 | +OPENAI_BASE_URL_INTERNAL=http://localhost:11434 # Ollama, vLLM, Groq, etc. |
| 79 | +OPENAI_BASE_URL=http://localhost:8080 # This server’s endpoint |
| 80 | +OPENAI_API_KEY=sk-mockapikey123456789 # Mock key tunneled to backend |
73 | 81 | ``` |
74 | 82 |
|
75 | | -Run server: |
| 83 | +Server binding: |
76 | 84 | ``` |
77 | | -uv run src/openai_responses_server/cli.py start |
| 85 | +API_ADAPTER_HOST=0.0.0.0 |
| 86 | +API_ADAPTER_PORT=8080 |
| 87 | +``` |
| 88 | +Optional logging: |
78 | 89 | ``` |
| 90 | +LOG_LEVEL=INFO |
| 91 | +LOG_FILE_PATH=./log/api_adapter.log |
| 92 | +``` |
| 93 | + |
| 94 | + |
| 95 | +⸻ |
| 96 | + |
| 97 | +# 💬 I’d love your support! |
| 98 | + |
| 99 | +If you think this is cool: |
| 100 | +⭐ Star the repo |
| 101 | +🐛 Open an issue if something’s broken |
| 102 | +🤝 Suggest a feature or submit a pull request! |
79 | 103 |
|
80 | | -# 📚 Citation |
| 104 | +This is early-stage but already usable in real-world demos. |
| 105 | +Let’s build something powerful—together. |
81 | 106 |
|
82 | | -## Cited projects |
| 107 | +⸻ |
83 | 108 |
|
84 | | -UncleCode. (2024). Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper [Computer software]. |
85 | | -GitHub. https://github.com/unclecode/crawl4ai |
| 109 | +# 📚 Citations & inspirations |
86 | 110 |
|
87 | | -## Cite this project |
| 111 | +## Referenced projects |
| 112 | + • Crawl4AI – LLM-friendly web crawler |
| 113 | + • Graphiti – Neo4j-powered search |
88 | 114 |
|
89 | | -If you use openai-responses-server in your research or project, please cite: |
| 115 | +## Cite this project |
90 | 116 |
|
91 | | -### Code citation format |
92 | 117 | @software{openai-responses-server, |
93 | 118 | author = {TeaBranch}, |
94 | | - title = {openai-responses-server: Open-source server the serves any AI provider with OpenAI ChatCompletions as OpenAI's Responses API and hosted tools.}, |
| 119 | + title = {openai-responses-server: Open-source server bridging any AI provider to OpenAI’s Responses API}, |
95 | 120 | year = {2025}, |
96 | 121 | publisher = {GitHub}, |
97 | 122 | journal = {GitHub Repository}, |
98 | 123 | howpublished = {\url{https://github.com/teabranch/openai-responses-server}}, |
99 | | - commit = {Please use the commit hash you're working with} |
| 124 | + commit = {use the commit hash you’re working with} |
100 | 125 | } |
101 | 126 |
|
102 | | -### Text citation format: |
103 | 127 |
|
104 | | -TeaBranch. (2025). openai-responses-server: Open-source server the serves any AI provider with OpenAI ChatCompletions as OpenAI's Responses API and hosted tools. [Computer software]. |
105 | | -GitHub. https://github.com/teabranch/openai-responses-server |
| 128 | + |
| 129 | +⸻ |
| 130 | + |
| 131 | +# 🏁 Try it with baby-tau |
| 132 | + |
| 133 | +Want to see it in action? |
| 134 | +Check out baby-tau—an AI assistant that can hear, think, and speak. |
| 135 | + |
0 commit comments