> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Usa AI SDK con CometAPI

> Usa esta guía para configurar AI SDK con CometAPI estableciendo la URL base, la clave API y las opciones de model o provider.

El [provider de CometAPI para AI SDK](https://github.com/cometapi-dev/ai-sdk-provider) te da acceso a más de 500 modelos de IA a través de una interfaz unificada de TypeScript. Úsalo para agregar generación de texto, Streaming, Embeddings y generación de imágenes a cualquier aplicación de runtime de Node.js o Edge.

## Funcionalidades compatibles

| Funcionalidad          | Método                 | Estado     |
| ---------------------- | ---------------------- | ---------- |
| Generación de texto    | `generateText()`       | Compatible |
| Streaming de texto     | `streamText()`         | Compatible |
| Embeddings de texto    | `textEmbeddingModel()` | Compatible |
| Generación de imágenes | `imageModel()`         | Compatible |

## Requisitos previos

* Node.js 18+
* Una cuenta de CometAPI con una clave API activa — [obtén la tuya aquí](https://www.cometapi.com/console/token)

<Steps>
  <Step title="Instala el provider">
    Instala `@cometapi/ai-sdk-provider` junto con el paquete principal de AI SDK:

    <CodeGroup>
      ```bash npm theme={null}
      npm install @cometapi/ai-sdk-provider ai
      ```

      ```bash pnpm theme={null}
      pnpm add @cometapi/ai-sdk-provider ai
      ```

      ```bash yarn theme={null}
      yarn add @cometapi/ai-sdk-provider ai
      ```
    </CodeGroup>
  </Step>

  <Step title="Configura tu clave API">
    El provider lee la variable de entorno `COMETAPI_KEY` de forma predeterminada:

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    <Note>
      Usa variables de entorno para evitar incluir credenciales de forma fija en tu código fuente.
    </Note>
  </Step>

  <Step title="Importa el provider">
    Importa la instancia predeterminada del provider:

    ```typescript theme={null}
    import { cometapi } from '@cometapi/ai-sdk-provider';
    ```

    Para sobrescribir la clave API, la URL base u otras configuraciones, usa `createCometAPI`:

    ```typescript theme={null}
    import { createCometAPI } from '@cometapi/ai-sdk-provider';

    const cometapi = createCometAPI({
      apiKey: process.env.COMETAPI_KEY,       // override env variable
      baseURL: 'https://api.cometapi.com/v1',  // default
    });
    ```
  </Step>
</Steps>

## Uso

### Genera texto

Usa `generateText()` para una respuesta de una sola vez:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: cometapi('your-model-id'),
  prompt: 'What is CometAPI?',
});

console.log(text);
```

### Transmite texto

Usa `streamText()` para una salida fragmentada en tiempo real:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { streamText } from 'ai';

const result = streamText({
  model: cometapi('your-model-id'),
  prompt: 'Write a short story about AI.',
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}
```

### Genera Embeddings

Usa `textEmbeddingModel()` para crear Embeddings vectoriales:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';

const model = cometapi.textEmbeddingModel('text-embedding-3-small');

// Single embedding
const single = await model.doEmbed({ values: ['Hello, world!'] });
console.log('Dimensions:', single.embeddings[0].length);

// Batch embeddings
const batch = await model.doEmbed({
  values: ['sunny day', 'rainy afternoon', 'cold winter night'],
});
console.log('Count:', batch.embeddings.length);
```

### Genera imágenes

Usa `imageModel()` para generar imágenes a partir de prompts de texto:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { experimental_generateImage as generateImage } from 'ai';

const { image } = await generateImage({
  model: cometapi.imageModel('your-model-id'),
  prompt: 'A beautiful sunset over mountains',
});
```

## Configuración del proveedor

`createCometAPI` acepta las siguientes opciones:

| Opción    | Tipo                     | Predeterminado                | Descripción                             |
| --------- | ------------------------ | ----------------------------- | --------------------------------------- |
| `apiKey`  | `string`                 | `process.env.COMETAPI_KEY`    | Clave de API de CometAPI                |
| `baseURL` | `string`                 | `https://api.cometapi.com/v1` | URL base de la API                      |
| `headers` | `Record<string, string>` | —                             | Encabezados de solicitud personalizados |
| `fetch`   | `FetchFunction`          | —                             | Implementación personalizada de fetch   |

## Métodos del modelo

El proveedor expone varios constructores de modelos:

| Método                                 | Devuelve           | Caso de uso                                 |
| -------------------------------------- | ------------------ | ------------------------------------------- |
| `cometapi(modelId)`                    | `LanguageModelV2`  | Generación de texto y Streaming (abreviado) |
| `cometapi.chatModel(modelId)`          | `LanguageModelV2`  | Chat Completions                            |
| `cometapi.completionModel(modelId)`    | `LanguageModelV2`  | Completions de texto                        |
| `cometapi.languageModel(modelId)`      | `LanguageModelV2`  | Alias de `chatModel`                        |
| `cometapi.textEmbeddingModel(modelId)` | `EmbeddingModelV2` | Embeddings de texto                         |
| `cometapi.imageModel(modelId)`         | `ImageModelV2`     | Generación de imágenes                      |

Consulta la lista completa de model IDs disponibles en la [página de modelos](/es/overview/models).

<AccordionGroup>
  <Accordion title="Consejos y solución de problemas">
    * **Selección de modelo**: Cualquier modelo del [catálogo de modelos de CometAPI](/es/overview/models) funciona con el método de modelo correspondiente: modelos de chat mediante `cometapi()`, modelos de embedding mediante `textEmbeddingModel()`, modelos de imagen mediante `imageModel()`.
    * **Ajuste de respuestas**: Pasa `temperature`, `maxTokens` y `topP` directamente a `generateText()` o `streamText()`, por ejemplo, `generateText(\{..., temperature: 0.7\})`.
    * **Manejo de errores**: Envuelve las llamadas en `try/catch` para gestionar errores de autenticación, límites de tasa o problemas de red.
    * **Seguridad**: Nunca confirmes claves de API en el control de versiones. Usa variables de entorno o un gestor de secretos.
    * **Límites de tasa**: Supervisa el uso en la [consola de CometAPI](https://www.cometapi.com/console).
  </Accordion>
</AccordionGroup>

## Recursos relacionados

* [Proveedor de AI SDK de CometAPI en GitHub](https://github.com/cometapi-dev/ai-sdk-provider)
* [@cometapi/ai-sdk-provider en npm](https://www.npmjs.com/package/@cometapi/ai-sdk-provider)
* [Documentación de AI SDK](https://ai-sdk.dev/docs)
* [Inicio rápido de CometAPI](/es/overview/quick-start)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#howto",
        "name": "Usar AI SDK con CometAPI",
        "description": "Usa esta guía para configurar AI SDK con CometAPI estableciendo la URL base, la clave de API y las opciones de model o provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-1",
            "position": 1,
            "name": "Instalar el proveedor",
            "text": "Completa el paso Instalar el proveedor en la guía Usar AI SDK con CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-2",
            "position": 2,
            "name": "Configura tu clave de API",
            "text": "Guarda tu clave de API de CometAPI en la variable de entorno o en el campo de configuración utilizado por la integración."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-3",
            "position": 3,
            "name": "Importar el proveedor",
            "text": "Completa el paso Importar el proveedor en la guía Usar AI SDK con CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Documentación de CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Integraciones",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Usar AI SDK con CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/ai-sdk"
          }
        ]
      }
    ]
    }
    `}
</script>
