Pular para o conteúdo
Testar o chatObter chave de API

Embeddings

POST /embeddings transforma texto em um vetor. model e input são obrigatórios.

Copia as instruções de configuração desta página, para colar no seu agente de código.
Ver o prompt
Me ajude a configurar isto para usar a Bayle AI, uma API compatível com a OpenAI. Guia completo: https://docs.bayle.ai/pt-br/guides/embeddings/

Objetivo: gerar embeddings de texto pela Bayle a partir deste projeto.

1. Ache ou crie o client da OpenAI deste projeto (Python ou Node, o que ele já usar) e aponte-o para a Bayle:
   Python: OpenAI(api_key=os.environ["BAYLE_API_KEY"], base_url="https://api.bayle.ai")
   Node: new OpenAI({ apiKey: process.env.BAYLE_API_KEY, baseURL: 'https://api.bayle.ai' })
2. Escolha um modelo de embedding: curl -s "https://api.bayle.ai/models?type=embedding" | jq -r '.data[].id'
   Me mostre a lista e deixe eu escolher o EMBEDDING_MODEL_ID.
3. Gere o embedding de uma string: client.embeddings.create(model=EMBEDDING_MODEL_ID, input="The quick brown fox.") e leia result.data[0].embedding.
4. Gere vários de uma vez passando um array em `input`; uma requisição custa menos que várias. Os resultados voltam em `data`, cada um com um `index`: ordene por `index` antes de usar.
5. Campos opcionais: `dimensions` pede um vetor menor em modelos que suportam; `encoding_format` é "float" (padrão) ou "base64". Com base64 cada embedding é uma string base64, então decodifique (Python: np.frombuffer(base64.b64decode(s), dtype=np.float32)). `user` é aceito, mas ignorado.
6. Teste: gere o embedding de "The quick brown fox." e imprima o tamanho do vetor e `usage.total_tokens` (é igual a `usage.prompt_tokens`, pois nada é gerado).

Regras:
1. A base URL é https://api.bayle.ai exatamente como está escrita. Não acrescente nenhum caminho a ela.
2. Leia a key da variável de ambiente BAYLE_API_KEY. Nunca escreva a key em um arquivo que você criar, em um comando, em um commit nem no chat. Onde a ferramenta guarda a key na própria tela de configurações, me diga onde colar. Se BAYLE_API_KEY não estiver definida, pare e peça que eu crie uma key em https://chat.bayle.ai/developers e a exporte.
3. Pegue os ids de modelo só de GET https://api.bayle.ai/models (sem key). Nunca chute um.
4. Termine com uma requisição de teste de verdade, me mostre o resultado e liste os arquivos que você alterou.
result = client.embeddings.create(
model="EMBEDDING_MODEL_ID",
input="The quick brown fox.",
)
print(len(result.data[0].embedding))

Encontre um modelo de embedding com GET /models?type=embedding.

Passe um array. Os resultados voltam em data, na mesma ordem em que os inputs foram enviados, cada um carregando seu index.

result = client.embeddings.create(
model="EMBEDDING_MODEL_ID",
input=["first document", "second document", "third document"],
)
vectors = [item.embedding for item in sorted(result.data, key=lambda d: d.index)]

Fazer em lote é o caminho mais barato quando você tem muitos inputs curtos, já que é uma única requisição em vez de várias.

Campo Tipo Notas
model string Obrigatório. Um id de modelo de embedding.
input string ou array de strings Obrigatório.
dimensions integer Solicita um vetor de saída menor, para modelos que suportam reduzi-lo.
encoding_format float ou base64 Padrão é float.
user string Aceito por compatibilidade com o client da OpenAI. A Bayle não age sobre ele.

Com encoding_format: "base64", cada embedding volta como uma string em base64 em vez de um array de números. É um payload menor, que vale a pena em lotes grandes, mas você precisa decodificá-lo:

import base64
import numpy as np
raw = base64.b64decode(result.data[0].embedding)
vector = np.frombuffer(raw, dtype=np.float32)

A resposta carrega usage.prompt_tokens e usage.total_tokens. Para embeddings esses são o mesmo número, já que nada é gerado.