Skip to content

feat(LocalAPI): OpenAI-compatible transcription API - #953

Open
souljorje wants to merge 9 commits into
altic-dev:mainfrom
souljorje:feature/openai-compatible-transcription-api
Open

feat(LocalAPI): OpenAI-compatible transcription API#953
souljorje wants to merge 9 commits into
altic-dev:mainfrom
souljorje:feature/openai-compatible-transcription-api

Conversation

@souljorje

Copy link
Copy Markdown

Description

Added OpenAI-compatible transcription API support for local API. Useful when you need to give some apps endpoint to custom transcriber :)

  • POST /v1/audio/transcriptions
  • Only json and text response formats are currently supported
  • OpenAI-style multipart/form-data uploads
  • OpenAI-shaped error responses

The model multipart field is accepted but ignored, FluidVoice's currently selected Voice Engine remains the source of truth.

Type of Change

  • 🐞 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 🧹 Chore
  • 📝 Documentation update

Related Issue or Discussion

#871

Testing

  • Tested on Intel Mac
  • Tested on Apple Silicon Mac
  • Tested on macOS version: 26.5.2 (25F84)
  • Ran linter locally: swiftlint --strict --config .swiftlint.yml Sources Tests Package.swift
  • Ran formatter locally: swiftformat --config .swiftformat Sources
  • Ran tests locally:
  • multipart parsing
  • multipart boundary bytes inside uploaded audio
  • JSON transcription response
  • plain-text transcription response
  • unsupported response_format
  • unavailable ASR handling
  • unexpected ASR failures
  • temporary upload cleanup

Screenshots / Video

  • No UI/visual changes; screenshots/video are not applicable.

Notes

GPT 5.6-Sol High coded and reviewed 🤖

@greptile-apps

greptile-apps Bot commented Sep 9, 2026

Copy link
Copy Markdown

Greptile Summary

Adds an OpenAI-compatible local transcription API and model-discovery endpoint.

  • Parses multipart audio uploads and supports JSON or plain-text transcription responses.
  • Normalizes audio decoding failures into client-facing errors and cleans up temporary files.
  • Adds OpenAI-shaped error responses, including a 503 response when the transcription service is unavailable.
  • Moves shared transcription behavior into a dedicated service and adds multipart, response-format, error-handling, and cleanup tests.

Confidence Score: 5/5

The PR appears safe to merge; the prior findings are resolved and the latest change correctly handles the 503 HTTP reason phrase.

No actionable new issues were identified, and all previous findings are resolved.

Reviews (4): Last reviewed commit: "fix(api): serialize 503 reason phrase" | Re-trigger Greptile

Comment thread Sources/Fluid/Services/LocalAPI/OpenAITranscriptionAPIController.swift Outdated
Comment thread Sources/Fluid/Services/LocalAPI/OpenAITranscriptionAPIController.swift Outdated
Comment thread Sources/Fluid/Services/LocalAPI/LocalAPIMultipartFormData.swift Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dd3ee4a1b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6188dfb045

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@souljorje souljorje changed the title feature: OpenAI-compatible transcription API feat(LocalAPI): OpenAI-compatible transcription API Sep 11, 2026
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