> ## Documentation Index
> Fetch the complete documentation index at: https://www.edenai.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# PyGPT

> Configure PyGPT, the desktop AI assistant, to use Eden AI for 500+ models behind one API key.

export const TechArticleSchema = ({title, description, path, articleSection, about, proficiencyLevel = "Beginner", dependencies, keywords = [], datePublished, dateModified, image, inLanguage = "en"}) => {
  const baseUrl = "https://www.edenai.co/docs";
  const canonicalUrl = `${baseUrl}/${path}`.replace(/\/+$/, "");
  const ogParams = new URLSearchParams({
    division: articleSection || "",
    title: title || "",
    description: description || ""
  });
  const resolvedImage = image || `https://edenai.mintlify.app/_mintlify/api/og?${ogParams.toString()}`;
  const data = {
    "@context": "https://schema.org",
    "@type": "TechArticle",
    "@id": `${canonicalUrl}#techarticle`,
    mainEntityOfPage: {
      "@type": "WebPage",
      "@id": canonicalUrl
    },
    headline: title,
    name: title,
    description: description,
    url: canonicalUrl,
    inLanguage: inLanguage,
    isPartOf: {
      "@type": "WebSite",
      name: "Eden AI Documentation",
      url: baseUrl
    },
    author: [{
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/"
    }],
    publisher: {
      "@type": "Organization",
      name: "Eden AI",
      url: "https://www.edenai.co/",
      logo: {
        "@type": "ImageObject",
        url: "https://www.edenai.co/assets/logo.png"
      }
    }
  };
  if (articleSection) data.articleSection = articleSection;
  if (about) data.about = {
    "@type": "Thing",
    name: about
  };
  if (proficiencyLevel) data.proficiencyLevel = proficiencyLevel;
  if (dependencies) data.dependencies = dependencies;
  if (keywords && keywords.length) data.keywords = keywords;
  if (datePublished) data.datePublished = datePublished;
  if (dateModified) data.dateModified = dateModified;
  data.image = Array.isArray(resolvedImage) ? resolvedImage : [resolvedImage];
  const json = JSON.stringify(data);
  const schemaId = `techarticle-${canonicalUrl}`;
  React.useEffect(() => {
    if (typeof document === "undefined") return;
    document.querySelectorAll(`script[data-schema-id="${schemaId}"]`).forEach(n => n.remove());
    const script = document.createElement("script");
    script.type = "application/ld+json";
    script.dataset.schemaId = schemaId;
    script.textContent = json;
    document.head.appendChild(script);
    return () => script.remove();
  }, [json, schemaId]);
  return null;
};

<TechArticleSchema title={"PyGPT"} description={"Configure PyGPT, the desktop AI assistant, to use Eden AI for 500+ models behind one API key."} path="v3/integrations/py-gpt" articleSection="Chat UI" about={"LLM Chat Interface"} proficiencyLevel="Beginner" keywords={["Eden AI", "AI API", "PyGPT", "Desktop Assistant", "LlamaIndex"]} datePublished="2026-08-31T00:00:00Z" dateModified="2026-08-31T00:00:00Z" />

Configure [PyGPT](https://github.com/szczyglis-dev/py-gpt), the desktop AI assistant, to use Eden AI for 500+ models behind one API key.

## Overview

PyGPT is a desktop application for chat, vision, image generation and agents. Eden AI is a **built-in provider**, configured entirely from the settings window with no file editing:

* **500+ models**: reach OpenAI, Anthropic, Google, Mistral and more through one key
* **Its own settings tab**: Eden AI has a dedicated tab under API keys
* **LLM and embeddings**: the provider serves both, so semantic index features work from the same key
* **EU endpoint**: change one field to route through `api.eu.edenai.run`

## Prerequisites

* PyGPT installed. See the [PyGPT repository](https://github.com/szczyglis-dev/py-gpt)
* An Eden AI API key from [app.edenai.run](https://app.edenai.run) → **API Keys**

## Setup

### 1. Enter your key

1. Open **Config** then **Settings**.
2. Go to the **API Keys** section and select the **Eden AI** tab.
3. Paste your key into **Eden AI API key**.
4. Leave **API Endpoint** at its default, `https://api.edenai.run/v3`.
5. Save.

### 2. Add an Eden AI model

Models are declared in the model editor with `edenai` as their provider, and the model name in Eden AI's `vendor/model` form. For example `anthropic/claude-sonnet-latest` or `openai/gpt-5-mini`.

Once saved, the model appears in the model picker like any other.

## Model naming

Eden AI addresses models as `vendor/model`, and PyGPT forwards the name unchanged. The live catalogue is public and needs no key:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.edenai.run/v3/models
  ```
</CodeGroup>

Read the catalogue rather than copying a list from a guide, since IDs are retired over time. `anthropic/claude-sonnet-latest` is an alias that always resolves to the current Sonnet, which makes it a safe default for a model entry you do not want to revisit.

## Embeddings

The Eden AI provider also serves embeddings, so PyGPT's index and semantic search features work from the same key. Embedding models live on a **separate catalogue**:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.edenai.run/v3/embeddings/models
  ```
</CodeGroup>

An embedding model will not appear in `/v3/models`, which is a common source of confusion when picking one.

## EU data residency

Change the **API Endpoint** field in the Eden AI settings tab:

```
https://api.eu.edenai.run/v3
```

The EU endpoint serves the subset of the catalogue available in the EU, so a model that works on the global endpoint is not guaranteed to be reachable through it.

## Troubleshooting

### Authentication errors

Re-check the key in **Settings** then **API Keys** then **Eden AI**. Make sure it is an Eden AI key and not a vendor key, and that it was pasted into the Eden AI tab rather than another provider's.

### `model not found`

Use the full `vendor/model` form, for example `openai/gpt-5-mini` and not `gpt-5-mini`. Copy the identifier exactly as `GET /v3/models` returns it.

### The endpoint field was cleared

An empty **API Endpoint** leaves the provider without a base URL. Restore the default, `https://api.edenai.run/v3`, or the EU host if that is what you want.

## Next Steps

* [Chat Completions](/docs/v3/llms/chat-completions) - Core LLM endpoint
* [List LLM Models](/docs/v3/llms/listing-models) - Browse available providers and models
* [LibreChat](/docs/v3/integrations/librechat) - Another chat interface on Eden AI
* [Open WebUI](/docs/v3/integrations/open-webui) - Self-hosted chat UI on Eden AI
