Skip to content

docs(integrations): add Auxen as a model provider#2992

Open
ai-auxen wants to merge 3 commits into
langfuse:mainfrom
ai-auxen:add-auxen
Open

docs(integrations): add Auxen as a model provider#2992
ai-auxen wants to merge 3 commits into
langfuse:mainfrom
ai-auxen:add-auxen

Conversation

@ai-auxen
Copy link
Copy Markdown

@ai-auxen ai-auxen commented May 22, 2026

Adds Auxen to Integrations → Model Providers.

Auxen provisions per-customer dedicated GPU instances behind an OpenAI-compatible endpoint (Llama, Qwen, Mistral, Gemma, Phi-3, Mixtral, Command-R). Per-minute pricing, no subscriptions.

The integration uses Langfuse's OpenAI drop-in replacement (from langfuse.openai import openai) pointed at the user's per-instance Auxen URL. No Langfuse-side changes — purely docs.

Files:

  • content/integrations/model-providers/auxen.mdx — quickstart with Python OpenAI drop-in, pricing, links to SDKs
  • content/integrations/model-providers/meta.json — nav entry inserted alphabetically between anthropic and baseten

Verification (live):

curl -i -X POST https://api.auxen.ai/mcp -H 'Content-Type: application/json' -d '{}'
# HTTP/1.1 401 — OAuth 2.1 + DCR live (correct behavior)

Related Auxen surfaces:

Note: the logo.svg referenced in frontmatter at /images/integrations/auxen_icon.svg would need to be added to public/ in a follow-up — happy to PR that separately if useful.

Greptile Summary

Adds a new auxen.mdx integration page under Model Providers and inserts the nav entry in meta.json. The guide uses the Langfuse OpenAI drop-in pointed at a user's per-instance Auxen URL — no Langfuse-side code changes.

  • URL construction inconsistency: The Step 2 env var example already includes /v1 in the path (https://api.auxen.ai/v1/inst_xxx), but Step 3 appends yet another /v1 — any user copying the guide verbatim would hit a double-versioned URL. Either the env var example should omit the trailing /v1 segment, or the code should not append it.
  • Missing logo asset: logo: /images/integrations/auxen_icon.svg is referenced in frontmatter but the SVG is not present in public/images/integrations/, which will produce a broken image on the rendered page. The author notes a follow-up PR is planned for this.
  • meta.json change is correct — auxen is inserted alphabetically between anthropic and baseten.

Confidence Score: 3/5

The guide has a URL construction bug that would cause the quickstart to silently fail for users following it, and the referenced logo asset is not included in the PR.

Step 2 and Step 3 of the quickstart contradict each other on where /v1 belongs in the Auxen URL, so a developer copying the code verbatim would produce a malformed base_url and get API errors. The missing logo SVG also means the page renders with a broken image on merge. Both issues should be resolved before this page goes live.

content/integrations/model-providers/auxen.mdx — the URL construction example and the missing logo asset both need attention before this page is safe to publish.

Sequence Diagram

sequenceDiagram
    participant User as Developer
    participant LF as langfuse.openai (drop-in)
    participant Auxen as Auxen Instance<br/>(OpenAI-compatible endpoint)
    participant LFAPI as Langfuse API

    User->>LF: openai.OpenAI(api_key, base_url)
    User->>LF: client.chat.completions.create(model, messages)
    LF->>Auxen: POST /v1/chat/completions
    Auxen-->>LF: ChatCompletion response
    LF-->>User: response.choices[0].message.content
    LF->>LFAPI: Async trace (tokens, latency, request/response)
Loading
Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
content/integrations/model-providers/auxen.mdx:42
**Contradictory `/v1` in env var vs URL construction** — Step 2 sets `AUXEN_BASE_URL` to `"https://api.auxen.ai/v1/inst_xxx"`, which already contains `/v1`. Step 3 then appends another `/v1`, yielding `https://api.auxen.ai/v1/inst_xxx/v1`. Any user who pastes their dashboard URL verbatim will hit a double-versioned path that will 404. Either the env var example should not include the trailing path segment, or the `/v1` suffix should not be appended in Step 3. The example env var and the URL construction must agree on where `v1` lives in the URL hierarchy.

```suggestion
os.environ["AUXEN_BASE_URL"] = "https://api.auxen.ai/inst_xxx"
```

### Issue 2 of 2
content/integrations/model-providers/auxen.mdx:4
**Missing logo asset** — The frontmatter references `/images/integrations/auxen_icon.svg`, but no such file exists in `public/images/integrations/`. Every other provider in this directory has its SVG committed alongside the MDX file (e.g., `deepseek_icon.svg`, `vllm_icon.svg`). Without the file, the sidebar and any page header that renders the logo will show a broken image. The PR description acknowledges a follow-up PR is planned, but merging without the asset produces a visibly broken page in production.

Reviews (1): Last reviewed commit: "docs(integrations): add Auxen as a model..." | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

Auxen (auxen.ai) provisions per-customer dedicated GPU instances
behind an OpenAI-compatible endpoint. The integration uses
Langfuse's OpenAI drop-in replacement — point base_url at the
Auxen instance, all calls are auto-traced.

Files:
  content/integrations/model-providers/auxen.mdx  — quickstart
  content/integrations/model-providers/meta.json  — nav entry
                                                    (alphabetical,
                                                     between anthropic
                                                     and baseten)
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 22, 2026

@Samp2Alex is attempting to deploy a commit to the langfuse Team on Vercel.

A member of the Team first needs to authorize it.

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

# ⚕️ HIPAA https://hipaa.cloud.langfuse.com

# Auxen — per-instance URL + key from the Auxen dashboard:
os.environ["AUXEN_BASE_URL"] = "https://api.auxen.ai/v1/inst_xxx"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Contradictory /v1 in env var vs URL construction — Step 2 sets AUXEN_BASE_URL to "https://api.auxen.ai/v1/inst_xxx", which already contains /v1. Step 3 then appends another /v1, yielding https://api.auxen.ai/v1/inst_xxx/v1. Any user who pastes their dashboard URL verbatim will hit a double-versioned path that will 404. Either the env var example should not include the trailing path segment, or the /v1 suffix should not be appended in Step 3. The example env var and the URL construction must agree on where v1 lives in the URL hierarchy.

Suggested change
os.environ["AUXEN_BASE_URL"] = "https://api.auxen.ai/v1/inst_xxx"
os.environ["AUXEN_BASE_URL"] = "https://api.auxen.ai/inst_xxx"
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/integrations/model-providers/auxen.mdx
Line: 42

Comment:
**Contradictory `/v1` in env var vs URL construction** — Step 2 sets `AUXEN_BASE_URL` to `"https://api.auxen.ai/v1/inst_xxx"`, which already contains `/v1`. Step 3 then appends another `/v1`, yielding `https://api.auxen.ai/v1/inst_xxx/v1`. Any user who pastes their dashboard URL verbatim will hit a double-versioned path that will 404. Either the env var example should not include the trailing path segment, or the `/v1` suffix should not be appended in Step 3. The example env var and the URL construction must agree on where `v1` lives in the URL hierarchy.

```suggestion
os.environ["AUXEN_BASE_URL"] = "https://api.auxen.ai/inst_xxx"
```

How can I resolve this? If you propose a fix, please make it concise.

---
title: Monitor Auxen with Langfuse
sidebarTitle: Auxen
logo: /images/integrations/auxen_icon.svg
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Missing logo asset — The frontmatter references /images/integrations/auxen_icon.svg, but no such file exists in public/images/integrations/. Every other provider in this directory has its SVG committed alongside the MDX file (e.g., deepseek_icon.svg, vllm_icon.svg). Without the file, the sidebar and any page header that renders the logo will show a broken image. The PR description acknowledges a follow-up PR is planned, but merging without the asset produces a visibly broken page in production.

Prompt To Fix With AI
This is a comment left during a code review.
Path: content/integrations/model-providers/auxen.mdx
Line: 4

Comment:
**Missing logo asset** — The frontmatter references `/images/integrations/auxen_icon.svg`, but no such file exists in `public/images/integrations/`. Every other provider in this directory has its SVG committed alongside the MDX file (e.g., `deepseek_icon.svg`, `vllm_icon.svg`). Without the file, the sidebar and any page header that renders the logo will show a broken image. The PR description acknowledges a follow-up PR is planned, but merging without the asset produces a visibly broken page in production.

How can I resolve this? If you propose a fix, please make it concise.

@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. documentation Improvements or additions to documentation labels May 22, 2026
Greptile review feedback on PR langfuse#2992:

1. URL construction: env var now holds the full base_url (including the
   trailing /v1 that the dashboard surfaces). The OpenAI client uses it
   as-is — no path-stitching, no double /v1. The dashboard URL pattern
   matches the example so a paste-verbatim flow works.

2. Logo asset: public/images/integrations/auxen_icon.svg added so the
   sidebar and page header don't render a broken image.
@ai-auxen
Copy link
Copy Markdown
Author

Both review items addressed in commit 24f3b69:

  1. Logo assetpublic/images/integrations/auxen_icon.svg added (pulled the canonical mark from auxen.ai/logo.svg).
  2. URL construction — Reworked Step 2 so AUXEN_BASE_URL holds the full per-instance base URL including the trailing /v1 (matches what the Auxen dashboard displays). Step 3 now uses the env var directly, no path-stitching, no double /v1. A paste-verbatim-from-dashboard flow now works correctly.

Both /v1 segments in the Auxen URL are real (one for the agent router mount, one for the OpenAI-compatible inference prefix), but I agree the original example obscured that. The new shape avoids the confusion entirely.

Greptile review on PR langfuse#2992 flagged the AUXEN_BASE_URL example as
having a duplicated /v1, but both segments are real and required:
the leading /v1 is Auxen's API version, the trailing /v1 is the
OpenAI-compatible path inside the per-instance namespace where
/chat/completions actually lives.

Rewriting the inline comment so the structure is obvious to readers
and reviewers without changing the URL value or the example flow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ai-auxen
Copy link
Copy Markdown
Author

Thanks @greptile-apps for the careful review — addressing both points:

1. Double /v1 in AUXEN_BASE_URL — fixed in 597fbd7 by rewriting the inline comment to explain the structure. The URL is intentional, not duplicated:

  • The leading /v1 is Auxen's API version (top-level routes on api.auxen.ai).
  • The trailing /v1 is the OpenAI-compatible spec path inside the per-instance namespace, where /chat/completions lives. This is what gets pasted in verbatim from the dashboard, and what openai.OpenAI(base_url=...) joins with /chat/completions directly — no string concatenation in Step 3.

So https://api.auxen.ai/v1/inst_xxx/v1/chat/completions is the correct final request URL, and the env var stops one segment short of that. The new comment makes the two-segment structure explicit so it doesn't read as a typo.

2. Missing auxen_icon.svg — already in the PR (added in an earlier commit on this branch alongside the MDX). git diff origin/main...origin/add-auxen --name-status shows it as added; the Greptile run may have been against the very first commit before the asset was included. No action needed there.

Let me know if you want anything else adjusted.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 29, 2026

Both points check out:

  1. URL structure — The updated comment in Step 2 now clearly explains the two-segment structure (/v1 API version + /v1 OpenAI-compat path), and Step 3 explicitly notes that base_url is used as-is without any further path appending. The explanation is clear and the code is correct. My original concern is resolved.

  2. Logo asset — Confirmed the asset is present on the branch. The review was triggered against the initial commit before the SVG was committed. No issue.

Both concerns are resolved — the page looks good to merge.

Tip: You can customize Greptile's behavior for this repo with .greptile/rules.md and .greptile/config.json.

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

Labels

documentation Improvements or additions to documentation size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants