feat: call OpenAI, Anthropic & any LLM API with streaming#3
Merged
Conversation
Add an API-format axis (OpenAI Chat Completions, OpenAI Responses, Anthropic Messages) so any provider speaking a format works by base URL + key alone. Each format owns its endpoint path, auth scheme, request body, response parsing, and SSE stream parser. Add a streaming toggle that renders the reply token by token with time-to-first-token.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
💭 Why
Wingman only spoke OpenAI Chat Completions at one hardcoded path, with no streaming. This turns it into a general LLM client: pick a format, paste a base URL + key, call anything.
✨ What changed
x-api-key,anthropic-version, and the browser-access header automatically.👤 For users
Call OpenAI (Chat Completions or Responses), Anthropic, or any OpenAI-compatible provider (Groq, Together, DeepSeek, Z.AI, MiniMax) by base URL + key. Stream or fetch whole. The request/response inspection tabs work across every format.
📝 Notes
Google Gemini is deferred (different URL and key shape); the format interface leaves room to add it as one file.
Verified via typecheck, lint, build, and a format/SSE logic harness. Live provider calls (need keys) and the rendered UI were not exercised.