Skip to main content

🧠 autogen-oaiapi

GitHub stars Downloads

OpenAI-style Chat API server for AutoGen teams.
Deploy your own /v1/chat/completions endpoint using any AutoGen-compatible team configuration.

🚀 Try it? → Don’t forget to ⭐ the repo if useful!

A self-hosted, open-source alternative to OpenAI’s ChatCompletion API, built on top of Microsoft AutoGen.

🔍 Looking for:

  • OpenAI-style API server you can run locally?
  • An AutoGen-based ChatCompletion implementation?
  • A FastAPI wrapper for multi-agent LLM orchestration?

You found it. 🚀


WARNING

NOW(autogen-agentchat == 0.5.5) limit supported.

Because of it has bug on deserialization AssistantAgent with tools.

✨ Features

  • ✅ OpenAI-compatible API interface
  • ✅ Plug in any AutoGen GroupChat or SocietyOfMindAgent
  • ✅ Session-aware execution (per session_id)
  • ✅ FastAPI-based server with /v1/chat/completions endpoint
  • ✅ stream=True response support (coming soon)

📦 Installation

pip install autogen-oaiapi

How to use?

Using just SIMPLE api!

example

client = OpenAIChatCompletionClient(
    model="claude-3-5-haiku-20241022"
)
agent1 = AssistantAgent(name="writer", model_client=client)
agent2 = AssistantAgent(name="editor", model_client=client)
team = RoundRobinGroupChat(
    participants=[agent1, agent2],
    termination_condition=TextMentionTermination("TERMINATE")
)

server = Server(team=team, source_select="writer")
server.run(host="0.0.0.0", port=8000)  # you could do not filled that args. default is that host="0.0.0.0", port=8000

Just write AutoGen team, and... Run it!

CURL call test! example

curl -X POST http://localhost:8000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
 "session_id": "test-session",
 "messages": [ { "role": "user", "content": "Please write 5 funny stories." } ]
}'

Demo

Demo


Multi team support

from autogen_oaiapi.server import Server
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_agentchat.conditions import MaxMessageTermination, TextMentionTermination

client = OpenAIChatCompletionClient(
    model="gpt-4.1-nano"
)
agent1 = AssistantAgent(name="writer", model_client=client)
agent2 = AssistantAgent(name="editor", model_client=client)
team = RoundRobinGroupChat(
    participants=[agent1, agent2],
    termination_condition=TextMentionTermination("TERMINATE"),
)

server = Server()
server.model.register(
    name="TEST_TEAM",
    actor=team,
    source_select="writer",
)
server.run(port=8001)

or

from autogen_oaiapi.server import Server
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_agentchat.conditions import MaxMessageTermination, TextMentionTermination

server = Server()

@server.model.register(name="TEST_TEAM_DECORATOR", source_select="writer")
def build_team():
    client = OpenAIChatCompletionClient(
        model="gpt-4.1-nano"
    )
    agent1 = AssistantAgent(name="writer", model_client=client)
    agent2 = AssistantAgent(name="editor", model_client=client)
    team = RoundRobinGroupChat(
        participants=[agent1, agent2],
        termination_condition=TextMentionTermination("TERMINATE"),
    )
    return team

server.run(port=8001)

Look at the example folder include more examples!

  • simmple example
  • function style register example
  • decorator sytle register example
  • JSON file style api_key register example
  • Memory style api_key register example

Star History

Star History Chart

Metadata

Release files for autogen-oaiapi 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autogen-oaiapi 0.0.7
File Size Uploaded
autogen_oaiapi-0.0.7.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autogen-oaiapi 0.0.7
File Interpreter ABI Platform
autogen_oaiapi-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 45.2 kB

Release files / autogen_oaiapi-0.0.7.tar.gz

Download URL autogen_oaiapi-0.0.7.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
81091cdbc9cafcfcb717070f7790721d946a54a00686e10edaf99efc33fa1513
BLAKE2b-256 checksum
How to use checksums
e15dec21589f8a9aa4dc6cb4706a4c969d3b6a5a2b4537f0d353a208528b4855
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / autogen_oaiapi-0.0.7-py3-none-any.whl

Download URL autogen_oaiapi-0.0.7-py3-none-any.whl
Size 25.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b837ede3ca390484ce13901e7eb726c091ea457e3380bd7989df0851f1c3a05
BLAKE2b-256 checksum
How to use checksums
fa78f3bf21c1112c1be4ab1f591bb799d6e5a8252cf1816f188e0f0633e7441f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page