Catálogo de fornecedores
Guia da API Anthropic Claude
Utilize o endpoint partilhado de conclusão de conversas para clientes com os identificadores de modelos Anthropic Claude e a disponibilidade do serviço atualmente publicados.
- Escolher o produto de APIDistinga os pedidos de inferência dos fluxos de treino de modelos.
- Consultar o contratoUtilize a documentação da API e a referência OpenAPI correspondentes.
- Criar uma chave com âmbito definidoGere e guarde em segurança uma chave de API de cliente.
- Integrar e verificarEnvie um pedido documentado e analise a resposta.
- Monitorizar e rodar as chavesConsulte a utilização e revogue ou rode as chaves quando necessário.
Modelos Anthropic Claude publicados
Os nomes, identificadores exatos de encaminhamento, versões e estados de inferência são apresentados a partir do registo de modelos ativo, quando disponível. Um identificador em branco significa que o catálogo não publicou um valor de encaminhamento; não o deduza a partir do nome do modelo.
| Nome do modelo | Identificador exato do modelo | Versão | Estado da inferência |
|---|---|---|---|
| Claude Fable 5.1 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Opus 5.5 | claude-opus-5-5 |
— | Ativo · Disponível para inferência |
| Claude Sonnet 5.5 | claude-sonnet-5-5 |
— | Ativo · Disponível para inferência |
| Claude Haiku 5.5 | claude-haiku-5-5 |
— | Ativo · Disponível para inferência |
| Claude Opus 5 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Fable 5 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Mythos 5 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Sonnet 5 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Opus 4.8 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
| Claude Haiku 4.5 | Não foi publicado nenhum identificador de encaminhamento | — | Sem um identificador público de encaminhamento, não é possível confirmar a disponibilidade para chamadas diretas. |
Utilizar este fornecedor
- Escolha um modelo pelo identificador exato e confirme o respetivo estado antes de configurar uma aplicação. O nome de apresentação destina-se às pessoas; no campo do modelo, só deve utilizar o identificador.
- Cada página de fornecedor apresenta exemplos compatíveis com OpenAI e Claude Messages. Escolha o protocolo usado pelo cliente; o modelo selecionado também tem de suportar as funcionalidades pedidas.
- Se o serviço estiver disponível apenas para clientes existentes, mantenha o acesso da conta existente e não interprete a lista de modelos publicada como um convite para iniciar uma nova subscrição.
Exemplos de API para modelos
Escolha um identificador de modelo publicado, protocolo de API e idioma para ver um exemplo de pedido. Mantenha as chaves de API dos clientes num servidor de confiança.
Requisitos do protocolo
Os pedidos compatíveis com OpenAI usam POST /chat/completions no URL base de API do cliente configurado (por predefinição https://fusionpointai.com/api/v1). Autentique com Authorization: Bearer e uma chave de cliente com acesso à inferência. O URL completo predefinido é https://fusionpointai.com/api/v1/chat/completions.
Os pedidos Claude Messages usam POST /api/v1/messages. Envie a chave do cliente em x-api-key e defina anthropic-version como 2023-06-01. O URL base do Anthropic SDK é https://fusionpointai.com/api, porque o SDK acrescenta /v1/messages; também é suportada autenticação bearer.
Capacidades suportadas
O endpoint atual de chat compatível com OpenAI processa mensagens de texto síncronas. Este endpoint não suporta streaming nem chamadas a ferramentas.
O proxy Claude Messages preserva blocos de conteúdo nativos, dados de ferramentas e streaming real de eventos enviados pelo servidor quando o modelo upstream selecionado os suporta.
Instalar um cliente
Instale os clientes de Python e Node.js como pacotes separados:
Python: pip install openai anthropic
Node.js: npm install openai @anthropic-ai/sdk
curl 'https://fusionpointai.com/api/v1/chat/completions' \
-H "Authorization: Bearer $FUSIONPOINTAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "claude-opus-5-5",
"messages": [
{
"role": "user",
"content": "Summarize this in one sentence."
}
],
"temperature": 0.7,
"max_tokens": 300
}'
Padrões de pedido
Configurar chaves de API em segurança
Crie uma chave de API de cliente com acesso à inferência e disponibilize-a a um processo no servidor através do gestor de segredos ou do ambiente.
- Defina
FUSIONPOINTAI_API_KEYno ambiente do servidor; não inclua a chave no código do browser nem a submeta no controlo de versões. - Use HTTPS e limite a chave à conta e às permissões de inferência necessárias à aplicação.
- Oculte os cabeçalhos authorization e
x-api-keyem registos, rastos e pedidos de suporte; revogue uma chave se puder ter sido exposta.
export FUSIONPOINTAI_API_KEY="YOUR_CUSTOMER_API_KEY"
Selecionar um identificador exato de modelo
O campo model é um valor de encaminhamento, não um rótulo de apresentação. Escolha um identificador publicado no catálogo atual de modelos.
- Selecione um modelo ativo ou legado marcado como disponível para inferência.
- Copie o identificador exatamente, incluindo pontuação e sufixos de versão; nunca o deduza do nome do modelo.
- Se não houver identificador publicado, aguarde que o catálogo o forneça em vez de adivinhar um valor.
model_id = "claude-opus-5-5"
# Use this exact identifier with either protocol.
Enviar mensagens de sistema e de várias interações
Mantenha as mensagens da conversa pela ordem original e use apenas as funções e estruturas de conteúdo suportadas pelo protocolo e modelo selecionados.
- Nos pedidos compatíveis com OpenAI, envie mensagens system, user e assistant ordenadas, com conteúdo em texto.
- Em Claude Messages, envie a instrução de sistema suportada e os turnos user/assistant ordenados nos campos nativos do protocolo.
- Conserve apenas o contexto de conversa necessário à aplicação e respeite os limites de contexto do modelo.
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=512,
system="Answer in clear, concise German.",
messages=[
{"role": "user", "content": "What is an API?"},
{"role": "assistant", "content": "An API lets software exchange requests and responses."},
{"role": "user", "content": "Give a practical example."},
],
)
for block in response.content:
if block.type == "text":
print(block.text)
Pedir respostas JSON
Quando a aplicação precisar de saída estruturada, valide a resposta face ao seu próprio esquema antes de a utilizar.
- Use os controlos de saída estruturada suportados pelo protocolo escolhido e pelo modelo upstream selecionado.
- Trate o JSON gerado como entrada não fiável: analise-o, valide campos e tipos obrigatórios e trate saídas inválidas.
- Não presuma que uma combinação de modelo e protocolo suporta modo JSON sem confirmação na documentação do modelo.
import json
# JSON is generated content, not trusted application input.
response = client.messages.create(
model="claude-opus-5-5", max_tokens=256,
messages=[{"role": "user", "content": 'Return only JSON with a string field named "summary". Explain an API in one sentence.'}],
)
text = "".join(block.text for block in response.content if block.type == "text")
try:
result = json.loads(text)
if not isinstance(result, dict) or not isinstance(result.get("summary"), str):
raise ValueError("Unexpected response schema")
print(result["summary"])
except (json.JSONDecodeError, ValueError) as error:
print("Handle invalid model output:", error)
Receber saída SSE em tempo real
O streaming depende do protocolo e do modelo upstream selecionados; uma resposta JSON normal não é um fluxo.
- O chat compatível com OpenAI devolve atualmente texto síncrono e não fornece streaming.
- Em Claude Messages, use o modo stream quando o modelo upstream o suportar; o proxy encaminha eventos nativos enviados pelo servidor.
- Consuma eventos à medida que chegam, termine corretamente ao concluir ou ocorrer um erro e não trate saída parcial como resposta completa.
# client is the Anthropic client configured above.
with client.messages.stream(
model="claude-opus-5-5", max_tokens=512,
messages=[{"role": "user", "content": "Explain API authentication."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final_message = stream.get_final_message()
print("\nStop reason:", final_message.stop_reason)
Tratar ferramentas, blocos de conteúdo e erros
Mantenha intactas as estruturas nativas do protocolo e defina explicitamente o comportamento da aplicação para chamadas a ferramentas, conteúdo multimodal e falhas.
- O chat compatível com OpenAI não suporta atualmente chamadas a ferramentas nem blocos de conteúdo não textual.
- Claude preserva blocos nativos e dados de utilização/resultados de ferramentas quando o modelo upstream os suporta; valide nomes e argumentos antes de executar ferramentas.
- Verifique o estado HTTP e o corpo da resposta, distinga falhas de autenticação, permissão, validação e limite e repita erros transitórios com espera crescente.
import json
from datetime import datetime, timezone
from anthropic import APIError
messages = [{"role": "user", "content": "What time is it in UTC?"}]
tools = [{
"name": "current_utc_time", "description": "Read the current UTC time.",
"input_schema": {"type": "object", "properties": {}, "additionalProperties": False},
}]
try:
reply = client.messages.create(model="claude-opus-5-5", max_tokens=256, messages=messages, tools=tools)
results = []
for block in reply.content:
if block.type == "tool_use":
if block.name != "current_utc_time" or block.input != {}:
raise ValueError("Unapproved tool request")
results.append({"type": "tool_result", "tool_use_id": block.id,
"content": json.dumps({"utc": datetime.now(timezone.utc).isoformat()})})
if results:
messages.append({"role": "assistant", "content": reply.content})
messages.append({"role": "user", "content": results})
reply = client.messages.create(model="claude-opus-5-5", max_tokens=256, messages=messages, tools=tools)
print("".join(block.text for block in reply.content if block.type == "text"))
except APIError as error:
# Log status only; never log keys or private prompts.
print("API request failed:", getattr(error, "status_code", None))
Perguntas frequentes
Posso usar o nome apresentado do modelo num pedido?
Use apenas o identificador exato publicado para inferência. O nome apresentado não é um valor de encaminhamento e nunca deve adivinhar um identificador não publicado.
Que variável de ambiente contém a chave do cliente?
Use FUSIONPOINTAI_API_KEY nos dois protocolos. Mantenha o valor num ambiente de servidor de confiança, fora do código cliente e dos registos.
Que URL deve usar o cliente OpenAI?
Use o URL base configurado para a API do cliente, cujo valor predefinido é https://fusionpointai.com/api/v1. O endpoint de chat acrescenta /chat/completions.
Porque difere o URL base do Claude SDK do usado em cURL?
O Anthropic SDK acrescenta /v1/messages; defina o URL base como https://fusionpointai.com/api. Um pedido HTTP direto usa o URL completo /api/v1/messages.
O chat compatível com OpenAI suporta streaming ou ferramentas?
Não. O endpoint atual suporta apenas mensagens de texto síncronas; streaming e chamadas a ferramentas não estão disponíveis.
Todos os modelos Claude suportam blocos, ferramentas ou streaming?
Não. Estas funcionalidades nativas são preservadas quando o modelo upstream selecionado as suporta. Consulte as capacidades do modelo e trate pedidos não suportados.
Claude Messages · POST /messages
Os pedidos Claude Messages usam POST /api/v1/messages. Envie a chave do cliente em x-api-key e defina anthropic-version como 2023-06-01. O URL base do Anthropic SDK é https://fusionpointai.com/api, porque o SDK acrescenta /v1/messages; também é suportada autenticação bearer.
O proxy Claude Messages preserva blocos de conteúdo nativos, dados de ferramentas e streaming real de eventos enviados pelo servidor quando o modelo upstream selecionado os suporta.
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
model |
string |
Sim | {"minLength":1,"maxLength":160} |
max_tokens |
integer |
Sim | {"minimum":1,"maximum":100000} |
messages |
array |
Sim | {"minItems":1,"maxItems":100,"items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","maxLength":80}},"additionalProperties":true}}]}}}} |
system |
string | array |
Não | {"oneOf":[{"type":"string"},{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}},"additionalProperties":true}}]} |
stream |
boolean |
Não | {"default":false} |
temperature |
number |
Não | {"minimum":0,"maximum":1} |
top_p |
number |
Não | {"minimum":0,"maximum":1} |
top_k |
integer |
Não | {"minimum":0,"maximum":100000} |
stop_sequences |
array |
Não | {"items":{"type":"string"}} |
tools |
array |
Não | {"items":{"type":"object","additionalProperties":true}} |
tool_choice |
object |
Não | {"additionalProperties":true} |
thinking |
object |
Não | {"additionalProperties":true} |
metadata |
object |
Não | {"additionalProperties":true} |
output_config |
object |
Não | {"additionalProperties":true} |
service_tier |
string |
Não | [] |
{
"id": "msg_example",
"type": "message",
"role": "assistant",
"model": "claude-opus-5-5",
"content": [
{
"type": "text",
"text": "A concise answer to the supplied question."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 10
}
}
{"type":"error","error":{"type":"authentication_error","message":"Invalid or missing API key."}}
Faça o seu primeiro pedido
Envie pedidos HTTPS para o URL base abaixo. Use POST /chat/completions para chat de texto compatível com OpenAI ou POST /messages para Claude Messages. Selecione o protocolo na área de trabalho de modelos e use o URL e o formato JSON exatos correspondentes.
URL base da API: https://fusionpointai.com/api/v1
Crie ou faça a gestão de uma chave de API de cliente nas definições de chaves de API da sua conta. Envie-a como token bearer e guarde-a num servidor de confiança; não a inclua em código do browser, no controlo de versões ou em registos públicos.
A chave necessita do âmbito ai:inference e de acesso à subscrição de cliente relevante. A chave de API pública não é uma palavra-passe da conta e não deve ser partilhada.
Estes exemplos utilizam o ponto de acesso registado de conclusão de conversas JSON e os clientes Python e Node.js compatíveis com OpenAI. Guarde a chave na variável de ambiente FUSIONPOINTAI_API_KEY. Substitua o valor do modelo apenas por um identificador exato listado acima.
# Install the client for your application language.
# Python:
python -m pip install openai
# Node.js:
npm install openai
# Bash: enter the key without storing it in shell history.
read -rs -p 'FusionPointAI API key: ' FUSIONPOINTAI_API_KEY
export FUSIONPOINTAI_API_KEY
printf '\n'
# After finishing:
# unset FUSIONPOINTAI_API_KEY
curl 'https://fusionpointai.com/api/v1/chat/completions' \
-H "Authorization: Bearer $FUSIONPOINTAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "claude-opus-5-5",
"messages": [
{
"role": "user",
"content": "Summarize this in one sentence."
}
],
"temperature": 0.7,
"max_tokens": 300
}'
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FUSIONPOINTAI_API_KEY"],
base_url="https://fusionpointai.com/api/v1",
)
response = client.chat.completions.create(
model="claude-opus-5-5",
messages=[{"role": "user", "content": "Summarize this in one sentence."}],
temperature=0.7,
max_tokens=300,
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FUSIONPOINTAI_API_KEY,
baseURL: "https://fusionpointai.com/api/v1",
});
const response = await client.chat.completions.create({
model: "claude-opus-5-5",
messages: [{ role: "user", content: "Summarize this in one sentence." }],
temperature: 0.7,
max_tokens: 300,
});
console.log(response.choices[0].message.content);
OpenAI · Contrato dos pedidos e das respostas
O ponto de acesso aceita JSON. As mensagens são enviadas pela ordem indicada; cada mensagem tem uma função suportada e conteúdo em formato de texto. Os controlos opcionais de geração têm de respeitar os limites de validação abaixo. A resposta é um objeto JSON chat.completion com choices e, quando fornecida pelo fornecedor, utilização de tokens.
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
model | string | Sim | Texto com, no máximo, 160 caracteres; utilize um identificador publicado. |
messages | array | Sim | Matriz com 1 a 100 mensagens. |
messages[].role | string | Sim | Cada função é system, user ou assistant. |
messages[].content | string | Sim | O conteúdo de cada mensagem é texto com até 100 000 caracteres. |
temperature | number | Não | Número opcional entre 0 e 2. |
max_tokens | integer | Não | Número inteiro opcional entre 1 e 100 000; o modelo selecionado pode impor um limite de saída inferior. |
Estrutura da resposta
Uma resposta bem-sucedida contém id, object (chat.completion), created, model e choices. Uma opção contém o respetivo índice, uma mensagem assistant e finish_reason. A utilização pode incluir contagens de tokens. Podem aplicar-se limites específicos do fornecedor, mesmo que o pedido passe a validação do gateway.
{
"id": "chatcmpl_example",
"object": "chat.completion",
"created": 1700000000,
"model": "claude-opus-5-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A concise summary of the supplied text."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 10,
"total_tokens": 22
}
}
Acesso, limites e utilização segura
As subscrições de clientes em produção não contabilizam os pedidos nem a utilização de tokens face a uma quota; as chaves sandbox estão limitadas à franquia mensal publicada. Esta informação sobre a subscrição é independente dos limites técnicos do modelo e dos sistemas a montante.
- As janelas de contexto dos modelos, o tamanho máximo da saída, as funcionalidades de pedido suportadas e os controlos temporários de tráfego a montante variam. Consulte as informações do fornecedor e do modelo antes de enviar tráfego de produção.
- O ponto de acesso aplica um limite de 60 pedidos por minuto por identidade de limitação aplicável. HTTP 429 também pode indicar controlos temporários de tráfego a montante; volte a tentar com intervalos crescentes, em vez de repetir pedidos continuamente.
- Utilize HTTPS, mantenha as chaves no servidor, conceda apenas o âmbito de inferência necessário e revogue rapidamente uma chave se houver suspeita de exposição.
- Chat Completions suporta texto síncrono. Claude Messages suporta separadamente blocos de conteúdo nativos, ferramentas e SSE quando permitidos pelo modelo selecionado. Outros pontos de acesso de fornecedores não fazem parte destes contratos.
Acesso ao fornecedor e requisitos da conta
Autentique-se com uma chave de API de cliente que tenha o âmbito ai:inference e pertença a uma conta com acesso a este serviço. O catálogo indica se são atualmente aceites novos clientes. Não concede acesso, não cria uma subscrição nem substitui as permissões da conta ou da chave.
Erros e resolução de problemas
As falhas de validação e os resultados inutilizáveis do fornecedor devolvidos pelo ponto de acesso usam um objeto de erro JSON com message, type e code; as falhas de validação também podem incluir detalhes do campo. Não envie chaves de API nem conteúdo privado dos prompts nos pedidos de suporte.
As falhas de validação do pedido e do fornecedor devolvidas pela operação de conversação usam um objeto de erro. O middleware de autenticação, âmbito e limitação pode, em alternativa, devolver um campo message no nível superior. Consulte em conjunto o estado e o corpo da resposta.
| Estado HTTP | Significado e ação seguinte |
|---|---|
400 | Corpo do pedido inválido. Verifique os campos obrigatórios, o número e o conteúdo das mensagens, os valores das funções, temperature e max_tokens.
|
401 | Chave bearer em falta ou inválida. Confirme que a chave está ativa e é enviada no cabeçalho Authorization. |
403 | A chave pode não ter o âmbito de inferência ou o acesso à conta necessários. Verifique as permissões da chave e o acesso à subscrição. |
429 | Foi aplicado um limite de pedidos ou um controlo de tráfego a montante. Reduza o ritmo e volte a tentar com intervalos exponenciais. |
500 | O fornecedor não devolveu uma conclusão utilizável ou ocorreu uma falha no serviço. Volte a tentar com prudência; se contactar o suporte, indique a hora e um identificador do pedido sem dados sensíveis. |
Perguntas frequentes
Posso utilizar o nome de apresentação como valor do modelo?
Só se essa cadeia exata também tiver sido publicada como identificador de encaminhamento. Utilize a coluna do identificador; se estiver em branco, não foi publicado aqui nenhum valor de encaminhamento.
Posso usar o Claude SDK?
Sim. Escolha Claude na área de trabalho de modelos e use o Anthropic SDK com o URL base apresentado. Envia pedidos nativos Messages, não Chat Completions. Aplicam-se as capacidades específicas do modelo.
Porque poderá falhar um modelo listado?
O modelo pode estar indisponível, o acesso pode não estar ativo para a sua conta ou chave, ou pode aplicar-se um limite técnico a montante. Verifique o estado, o identificador, o âmbito da chave e a resposta de erro.
Que informações devo incluir num pedido de suporte?
Indique o fornecedor, o identificador exato do modelo, a hora do pedido, o estado HTTP e um ID de pedido sem dados sensíveis. Remova as chaves de API e os dados sensíveis dos prompts.