---
title: Schema
slug: schema
createdAt: 2024-09-02T18:53:08.277Z
---

As regras do Provedor são baseadas na entidade Provider.

As regras do Modelo são baseadas na entidade AIModelEntity.

Todas as entidades mencionadas abaixo são baseadas no Pydantic BaseModel e podem ser encontradas no módulo entities.

## Provedor

- **provider** (string): Identificador do provedor, por exemplo, openai.
- **label** (objeto): Nome de exibição do provedor, i18n, com configurações de idioma em en\_US (inglês).
  - **en\_US** (string): Nome do rótulo em inglês.
- **description** (objeto): Descrição do provedor, i18n.
  - **en\_US** (string): Descrição em inglês.
- **icon\_small** (string) \[opcional]: Ícone pequeno do provedor, armazenado no diretório \_assets sob o diretório de implementação correspondente ao provedor, com a mesma estratégia de idioma do rótulo.
  - **en\_US** (string): Ícone em inglês.
- **icon\_large** (string) \[opcional]: Ícone grande do provedor, armazenado no diretório \_assets sob o diretório de implementação correspondente ao provedor, com a mesma estratégia de idioma do rótulo.
  - **en\_US** (string): Ícone em inglês.
- **background** (string) \[opcional]: Valor da cor de fundo, por exemplo, #FFFFFF. Se estiver vazio, o valor de cor padrão do frontend será exibido.
- **help** (objeto) \[opcional]: Informações de ajuda.
  - **title** (objeto): Título da ajuda, i18n.
    - **en\_US** (string): Título em inglês.
  - **url** (objeto): Link de ajuda, i18n.
    - **en\_US** (string): Link em inglês.
- **supported\_model\_types** (array\[ModelType]): Tipos de modelos suportados.
- **configurate\_methods** (array\[ConfigurateMethod]): Métodos de configuração.
- **provider\_credential\_schema** (ProviderCredentialSchema): Especificação de credenciais do provedor.
- **model\_credential\_schema** (ModelCredentialSchema): Especificação de credenciais do modelo.

## AIModelEntity

- **model** (string): Identificador do modelo, por exemplo, gpt-3.5-turbo.
- **label** (objeto) \[opcional]: Nome de exibição do modelo, i18n, com configurações de idioma em en\_US (inglês).
  - **en\_US** (string): Nome do rótulo em inglês.
- **model\_type** (ModelType): Tipo de modelo.
- **features** (array\[ModelFeature]) \[opcional]: Lista de recursos suportados.
- **model\_properties** (objeto): Propriedades do modelo.
  - **mode** (LLMMode): Modo (disponível para tipo de modelo llm).
  - **context\_size** (int): Tamanho do contexto (disponível para tipos de modelos llm, text-embedding).
  - **max\_chunks** (int): Número máximo de chunks (disponível para tipos de modelos text-embedding, moderation).
  - **file\_upload\_limit** (int): Limite máximo de upload de arquivos, em MB (disponível para tipo de modelo speech2text).
  - **supported\_file\_extensions** (string): Formatos de extensão de arquivo suportados, por exemplo, mp3, mp4 (disponível para tipo de modelo speech2text).
  - **default\_voice** (string): Voz padrão, por exemplo: alloy, echo, fable, onyx, nova, shimmer (disponível para tipo de modelo tts).
  - **voices** (lista): Lista de vozes disponíveis (disponível para tipo de modelo tts).
    - **mode** (string): Modelo de voz (disponível para tipo de modelo tts).
    - **name** (string): Nome de exibição do modelo de voz (disponível para tipo de modelo tts).
    - **language** (string): Idiomas suportados pelo modelo de voz (disponível para tipo de modelo tts).
  - **word\_limit** (int): Limite de palavras por conversão, por parágrafo por padrão (disponível para tipo de modelo tts).
  - **audio\_type** (string): Formato de extensão de arquivo de áudio suportado, por exemplo: mp3, wav (disponível para tipo de modelo tts).
  - **max\_workers** (int): Número de trabalhadores simultâneos suportando conversão de texto e áudio (disponível para tipo de modelo tts).
  - **max\_characters\_per\_chunk** (int): Máximo de caracteres por chunk (disponível para tipo de modelo moderation).
  - **parameter\_rules** (array\[ParameterRule]) \[opcional]: Regras de parâmetros de invocação do modelo.
  - **pricing** (PriceConfig) \[opcional]: Informações de preços.
  - **deprecated** (bool): Se está depreciado. Se depreciado, o modelo não será mais exibido na lista, mas os já configurados podem continuar a ser usados. Padrão é False.

## ModelType

- **llm**: Modelo de geração de texto.
- **text-embedding**: Modelo de embedding de texto.
- **rerank**: Modelo de rerank.
- **speech2text**: Fala para texto.
- **tts**: Texto para fala.
- **moderation**: Moderação.

## ConfigurateMethod

- **predefined-model**: Modelo predefinido.
  - Indica que os usuários podem usar os modelos predefinidos sob o provedor configurando as credenciais unificadas do provedor.
- **customizable-model**: Modelo personalizável.
  - Os usuários precisam adicionar a configuração de credenciais para cada modelo.
- **fetch-from-remote**: Buscar do remoto.
  - Consistente com o método de configuração predefined-model, apenas as credenciais unificadas do provedor precisam ser configuradas, e os modelos são obtidos do provedor por meio de informações de credenciais.

## ModelFeature

- **agent-thought**: Raciocínio do agente, geralmente acima de 70B com capacidade de cadeia de pensamento.
- **vision**: Visão, ou seja, compreensão de imagem.
- **tool-call**: Chamada de ferramenta.
- **multi-tool-call**: Chamada de múltiplas ferramentas.
- **stream-tool-call**: Chamada de ferramenta em streaming.

## FetchFrom

- **predefined-model**: Modelo predefinido.
- **fetch-from-remote**: Modelo remoto.

## LLMMode

- **complete**: Conclusão de texto.
- **chat**: Diálogo.

## ParameterRule

- **name** (string): Nome do parâmetro real da invocação do modelo.
- **use\_template** (string) \[opcional]: Usando modelo.
  - Por padrão, 5 templates de configuração de conteúdo variável são predefinidos:
    - temperature
    - top\_p
    - frequency\_penalty
    - presence\_penalty
    - max\_tokens
  - No use\_template, você pode definir diretamente o nome da variável do template, que usará a configuração padrão em `entities.defaults.PARAMETER_RULE_TEMPLATE`. Não é necessário definir parâmetros adicionais além de name e use\_template. Se parâmetros de configuração adicionais forem definidos, eles substituirão a configuração padrão. Consulte `openai/llm/gpt-3.5-turbo.yaml`.
- **label** (objeto) \[opcional]: Rótulo, i18n.
  - **en\_US** (string): Nome do rótulo em inglês.
- **type** (string) \[opcional]: Tipo de parâmetro.
  - **int**: Inteiro.
  - **float**: Flutuante.
  - **string**: String.
  - **boolean**: Booleano.
- **help** (string) \[opcional]: Informações de ajuda.
  - **en\_US** (string): Informações de ajuda em inglês.
- **required** (bool): Se é obrigatório, padrão é False.
- **default** (int/float/string/bool) \[opcional]: Valor padrão.
- **min** (int/float) \[opcional]: Valor mínimo, aplicável apenas a tipos numéricos.
- **max** (int/float) \[opcional]: Valor máximo, aplicável apenas a tipos numéricos.
- **precision** (int) \[

opcional]: Precisão, número de casas decimais a serem mantidas, aplicável apenas a tipos numéricos.

- **options** (array\[string]) \[opcional]: Valores de opções para dropdown, aplicável apenas quando o tipo é string. Se não definido ou nulo, os valores das opções não são restritos.

## PriceConfig

- **input** (float): Preço de entrada, ou seja, preço do prompt.
- **output** (float): Preço de saída, ou seja, preço do conteúdo retornado.
- **unit** (float): Unidade de preço, por exemplo, se o preço é medido em 1M tokens, a quantidade correspondente de tokens para o preço unitário é 0.000001.
- **currency** (string): Unidade de moeda.

## ProviderCredentialSchema

- **credential\_form\_schemas** (array\[CredentialFormSchema]): Padrão de formulário de credenciais.

## ModelCredentialSchema

- **model** (objeto): Identificador do modelo, o nome da variável padrão é model.
  - **label** (objeto): Nome de exibição do item do formulário do modelo.
    - **en\_US** (string): Inglês.
  - **placeholder** (objeto): Conteúdo do prompt do modelo.
    - **en\_US** (string): Inglês.
- **credential\_form\_schemas** (array\[CredentialFormSchema]): Padrão de formulário de credenciais.

## CredentialFormSchema

- **variable** (string): Nome da variável do item do formulário.
- **label** (objeto): Nome do rótulo do item do formulário.
  - **en\_US** (string): Inglês.
- **type** (FormType): Tipo do item do formulário.
- **required** (bool): Se é obrigatório.
- **default** (string): Valor padrão.
- **options** (array\[FormOption]): Propriedade específica dos itens de formulário do tipo select ou radio, definindo o conteúdo do dropdown.
- **placeholder** (objeto): Propriedade específica dos itens de formulário do tipo text-input, conteúdo do placeholder.
  - **en\_US** (string): Inglês.
- **max\_length** (int): Propriedade específica dos itens de formulário do tipo text-input, definindo o comprimento máximo de entrada, 0 para sem limite.
- **show\_on** (array\[FormShowOnObject]): Exibido quando os valores de outros itens do formulário atendem a certas condições, exibido sempre se vazio.

## FormType

- **text-input**: Componente de entrada de texto.
- **secret-input**: Componente de entrada de senha.
- **select**: Dropdown de seleção única.
- **radio**: Componente de rádio.
- **switch**: Componente de interruptor, apenas valores verdadeiro e falso são suportados.

## FormOption

- **label** (objeto): Rótulo.
  - **en\_US** (string): Inglês.
- **value** (string): Valor da opção do dropdown.
- **show\_on** (array\[FormShowOnObject]): Exibido quando os valores de outros itens do formulário atendem a certas condições, exibido sempre se vazio.

## FormShowOnObject

- **variable** (string): Nome da variável de outros itens do formulário.
- **value** (string): Valor da variável de outros itens do formulário.

