Skip to content

Conversation

@Leopc1977
Copy link

Summary

This PR introduces OpenAIGenericAPIModel, enabling the use of any OpenAI-compatible API endpoint (local or remote) within Game Arena.

Changes

  • README.md

    • Added documentation for OpenAIGenericAPIModel usage with local or remote endpoints.
  • game_arena/harness/model_generation_http.py

    • Implemented OpenAIGenericAPIModel, a generic wrapper around any OpenAI-compatible API endpoint.
    • Supports:
      • Custom api_endpoint (HTTP/HTTPS).
      • Local or remote models hosting.
      • API key handling (optional for local).
      • Streaming and non-streaming completions.
      • Optional image input support.
  • game_arena/harness/harness_demo_openai_generic.py

    • Same demo as harness_demo, but using OpenAIGenericAPIModel.

Motivation

This makes it possible to integrate any OpenAI-compatible API into Game Arena without needing special integration code.
For example:

  • Local LLMs via vLLM / LM Studio.
  • Cloud-hosted OpenAI-compatible APIs.
  • Gemini / OpenAI side-by-side.

Example Usage

from game_arena.harness import model_generation_http

model = model_generation_http.OpenAIGenericAPIModel(
    model_name="my-local-model",
    api_endpoint="http://127.0.0.1:8082/v1/chat/completions",
    local_model=True,
    model_options={"image_support": False},
)

### Next Steps
- Extend examples beyond chess.
- Add test coverage for error handling and streaming completions.
- Consider creating a general base class for model classes in `model_generation_http.py` to reduce duplication and unify error handling, logging, and request building.

Leopc1977 and others added 11 commits August 21, 2025 14:40
Update model initialization and API handling in model_generation_http.py.
…l parser

Improve error logging in model_generation_http.py.
… instead of 'self_hosted'.

Update model options to include 'image_support' flag in model_generation_http.py for better configuration management.
… error handling for non-local models.

Remove unnecessary print statement in response handling.
…dpoint and image input validation.

Add 'max_tokens' option to model request parameters for better configuration.
…d update example usage.

Adjust image support default value in OpenAIGenericAPIModel.
@google-cla
Copy link

google-cla bot commented Aug 22, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant