Saltar para o conteúdo

Documentação

A sua stack.Já suportada.

Python, TypeScript, OpenAI, LangChain, n8n.

Fale connosco

Python

Só biblioteca standard, Python 3.9 ou superior. O AgentClient usa a chave de ingestão do agente; o Client usa um token de serviço bfk_ com âmbito (leitura ou escrita). As chamadas idempotentes repetem em erros de rede e 5xx; a ingestão só repete se todas as mensagens tiverem id. Os erros levantam ApiError com status, code e message.

from blue_falnoa import AgentClient, Client

bf = AgentClient(url, "bfa_…")          # ingest key of one agent
bf.send_messages("c1", [{"id": "m1", "role": "user", "content": "Hello"}])
bf.search_knowledge("refund window")

Client(url, "bfk_…").approve(occurrence_id, reason="Checked")  # service token, write scope

TypeScript

Usa fetch, Node 18 ou superior, ou um browser. Os mesmos dois clientes, com ApiError a trazer status e code.

import { AgentClient, Client } from "@blue-falnoa/sdk";

const bf = new AgentClient(url, "bfa_…");
await bf.sendMessages("c1", [{ id: "m1", role: "user", content: "Hello" }]);
console.log(await bf.doctor());

await new Client(url, "bfk_…").approve(occurrenceId, "Checked");

OpenAI

record_openai (Python) e recordOpenAI (TypeScript) enviam a última pergunta, a resposta e os tokens de uma resposta de chat.

from blue_falnoa import AgentClient, record_openai

bf = AgentClient(url, "bfa_…")
messages = [{"role": "user", "content": "Where is my order?"}]
response = openai.chat.completions.create(model="gpt-4o-mini", messages=messages)
record_openai(bf, "order-123", messages, response)  # question, answer and tokens

LangChain

Um handler de callbacks. Passe-o em callbacks e cada chamada fica registada.

from blue_falnoa import AgentClient, LangChainHandler

bf = AgentClient(url, "bfa_…")
llm.invoke("Where is my order?", config={"callbacks": [LangChainHandler(bf, "order-123")]})

n8n

Sem nó especial: um nó HTTP Request com a chave de ingestão num cabeçalho chega.

HTTP Request node
  Method:  POST
  URL:     https://YOUR-INSTANCE/api/agent/v1/conversations/{{ $execution.id }}/messages
  Header:  Authorization = Bearer bfa_…
  Body (JSON):
  {
    "messages": [
      { "role": "user", "content": "{{ $json.question }}" },
      { "role": "assistant", "content": "{{ $json.answer }}" }
    ]
  }

Os adaptadores leem objetos de resposta e são testados com simulações, não com fornecedores reais. Os fontes dos SDK são fornecidos por nós e não estão em registos públicos de pacotes.