Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jiushiwon/wg-skills --skill fastapi-ai-chat-module-skillgit clone --depth 1 https://github.com/jiushiwon/wg-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jiushiwon/wg-skills/fastapi-ai-chat-module-skill)<a href="https://agentmods.dev/skills/jiushiwon/wg-skills/fastapi-ai-chat-module-skill"><img src="https://agentmods.dev/badge/skills/jiushiwon/wg-skills/fastapi-ai-chat-module-skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jiushiwon/wg-skills/fastapi-ai-chat-module-skill"><img src="https://agentmods.dev/badge/skills/jiushiwon/wg-skills/fastapi-ai-chat-module-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 41 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.01426 |
| Opus 5 | $0.00053 | $0.00713 |
| Sonnet 5 | $0.00021 | $0.00285 |
| Haiku 4.5 | $0.00011 | $0.00143 |
Grade A, and why
fastapi-ai-chat-module-skill scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FastAPI AI Chat Module Skill
面向已有 FastAPI 项目的开发者,快速集成 AI 聊天能力。
能力清单
| 能力 | 说明 |
|---|---|
| 会话管理 | 创建/查询/删除会话 |
| 消息管理 | 发送/接收消息 |
| 上下文记忆 | 会话上下文保存与恢复 |
| 流式输出 | Server-Sent Events 流式响应 |
| Token 统计 | 消耗统计与限额控制 |
| 多模型支持 | OpenAI/Claude/本地模型 |
触发场景
用户说"帮我加 AI 聊天"或"集成 AI 对话"时触发。
核心实现
依赖配置
pip install openai anthropic httpx sse-starlette
配置
# config.py
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
openai_api_key: str = ""
openai_base_url: str = "https://api.openai.com/v1"
openai_model: str = "gpt-4"
# 会话配置
chat_max_history: int = 10
chat_max_tokens: int = 4000
settings = Settings()
数据模型
# models.py
from sqlalchemy import Column, BigInteger, String, Text, Integer, DateTime, Enum as SQLEnum
from sqlalchemy.sql import func
from database import Base
import enum
class MessageRole(str, enum.Enum):
USER = "user"
ASSISTANT = "assistant"
SYSTEM = "system"
class ChatModel(str, enum.Enum):
GPT_3_5 = "gpt-3.5-turbo"
GPT_4 = "gpt-4"
CLAUDE = "claude-3"
class ChatSession(Base):
__tablename__ = "wg_chat_session"
id = Column(BigInteger, primary_key=True, autoincrement=True)
user_id = Column(String(50), nullable=False, index=True)
title = Column(String(200))
model = Column(SQLEnum(ChatModel), default=ChatModel.GPT_3_5)
status = Column(Integer, default=1)
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())
class ChatMessage(Base):
__tablename__ = "wg_chat_message"
id = Column(BigInteger, primary_key=True, autoincrement=True)
session_id = Column(BigInteger, nullable=False, index=True)
role = Column(SQLEnum(MessageRole), nullable=False)
content = Column(Text, nullable=False)
token_count = Column(Integer, default=0)
created_at = Column(DateTime, server_default=func.now())
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 200 lines · 106 tokens per session scan A cc28afba0e45
fastapi-ai-chat-module-skill is a skill published in the GitHub repository jiushiwon/wg-skills (100 stars, last pushed 2d ago), licensed Apache-2.0. It adds 106 tokens to every session and 1,426 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
gemini-api-agent-platform
Guides the usage of the Gemini API on Agent Platform with the Google Gen AI SDK for enterprise AI applications. Covers SDK usage (Python, JS/TS, Go, Java, C#), capabilities like Live API, tools, multimedia generation, caching, and batch prediction.
open-source
Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or Tools configuration, is writing code that imports from browseruse, asks about @sandbox deployment, supported LLM models, Actor API, custom tools, lifecycle…
gemini-api-dev
Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses, background research tasks, function calling, structured output, or migrating from the old generateContent API. Covers SDK usage and best…
deepstream-sop
Use this skill when building, deploying, evaluating, debugging, or measuring latency for the DeepStream SOP Inference Microservice — a GPU-accelerated FastAPI service that detects whether operators perform assembly-line steps in order via event boundary detection (GEBD) plus VLM classification. Trigger even if the…
azure-search-documents-dotnet
Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search. Covers SearchClient (queries, document CRUD), SearchIndexClient (index management), and SearchIndexerClient (indexers, skillsets). Triggers: "Azure Search .NET"…
azure-search-documents-ts
Build search applications using Azure AI Search SDK for JavaScript (@azure/search-documents). Use when creating/managing indexes, implementing vector/hybrid search, semantic ranking, or building agentic retrieval with knowledge bases.