界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

api-client-operations

api-client-operations

【开发与工程】Guides DocsGPT native answer and attachment APIs, SSE and reconnect behavior, OpenAI-compatible clients, structured output, multimodal input, idempotency, and MCP routing.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: api-client-operations description: "Guides DocsGPT native answer and attachment APIs, SSE and reconnect behavior, OpenAI-compatible clients, structured output, multimodal input, idempotency, and MCP routing." disable-model-invocation: true metadata: disco-role: operating license: MIT

API and Client Operations

Use this sub-skill to call DocsGPT from a client, choose native versus OpenAI-compatible endpoints, parse streams, recover connections, upload attachments, or validate ASGI/MCP exposure.

Choose the surface

Endpoint selection

NeedSurface
simple blocking answer with DocsGPT fieldsPOST /api/answer
native answer deltas, sources, thoughts, tool results, attachmentsPOST /stream
OpenAI SDK/client compatibilityPOST /v1/chat/completions
agent listing for an API keyGET /v1/models
upload turn-specific filePOST /api/store_attachment, then poll /api/task_status
per-user realtime notificationsGET /api/events
resume interrupted native answerGET /api/messages/<message_id>/events
MCP server/mcp on the full ASGI app

Native endpoints support DocsGPT-specific prompt passthrough, explicit conversation reuse, attachment ids, and visibility. /v1 is best when a client already speaks Chat Completions.

Native request resolution

  1. api_key loads the bound agent configuration.
  2. Otherwise agent_id can resolve an authorized agent.
  3. Otherwise request-level prompt/source/retriever fields apply.

Do not assume request fields override an API-key-owned agent. Use the same owner context for attachment upload and answer.

Safe smoke checks

Read-only deployment checks:

python scripts/api_smoke.py --base-url http://localhost:7091

Authenticated model listing:

DOCSGPT_API_KEY=... python scripts/api_smoke.py \
  --base-url http://localhost:7091 \
  --token-env DOCSGPT_API_KEY \
  --require-models

--question performs a real non-streaming agent run and persists a hidden conversation; use it only against a test agent/deployment.

Deterministic provider mock

To test DocsGPT outbound OpenAI-compatible provider wiring without a cloud call, run:

python scripts/mock_openai_server.py --port 8090

Point a disposable DocsGPT model/provider configuration at http://127.0.0.1:8090/v1. The mock handles model listing and streaming/non-streaming chat completions with deterministic content. It is not a security or load-test server.

Reliability rules

  • Buffer SSE by lines/frames; network chunks do not align to event boundaries.
  • Persist the last delivered event id/sequence only after processing the event.
  • Back off on 429; reset state on backlog.truncated and refetch current resources.
  • Use Idempotency-Key only where supported: /v1 non-streaming and agent webhooks have specific replay semantics.
  • A timeout after a state-changing tool call is ambiguous; check tool/run state before retry.
  • Conversations are persisted server-side; visibility controls listing, not persistence.

Cross-skill routes

我的收藏