Strapi AI插件

一个为Strapi v5设计的插件,集成Anthropic的Claude AI功能,提供管理面板聊天界面、公共API路由和工具调用功能。

  • by PaulBratslavsky
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 PaulBratslavsky/fun-strapi-ai-plugin

使用说明

Strapi的AI SDK插件

注: 这是一个我正在构建的个人学习项目,旨在探索通过插件向Strapi添加AI原生功能的乐趣。这是一项正在进行的工作。

Strapi v5插件,通过Vercel AI SDK集成了Anthropic的Claude。它在Strapi管理面板中添加了一个人工智能聊天功能,包括工具调用和3D化身,并通过REST API和MCP公开所有内容。

它的作用

  • 管理员聊天 --Strapi管理面板内的聊天界面(/admin/api/ai-sdk/chat)具有流式响应和工具调用功能
  • API公共路线 --外部客户端的REST端点:简单的提示/响应(/api/ai-sdk/ask),流媒体(/api/ai-sdk/ask-stream),并使用工具进行全面聊天(/api/ai-sdk/chat)
  • 工具调用 --Claude可以与您的Strapi内容交互(列出内容类型、搜索和编写文档),并在管理UI中控制3D化身(挥手、点头、庆祝、思考等)
  • MCP服务器 --所有内容工具都通过模型上下文协议公开(/api/ai-sdk/mcp),因此像Claude Desktop或Cursor这样的AI助手可以直接管理您的Strapi内容

设置

在中配置 server/config/plugins.ts:

export default ({ env }) => ({
  'ai-sdk': {
    enabled: true,
    resolve: 'src/plugins/ai-sdk',
    config: {
      anthropicApiKey: env('ANTHROPIC_API_KEY'),
      chatModel: env('ANTHROPIC_MODEL', 'claude-sonnet-4-20250514'),
      systemPrompt: env('AI_SYSTEM_PROMPT', 'You are a helpful assistant.'),
    },
  },
});

工具

工具 描述 聊天 MCP
listContentTypes 列出所有内容类型和组件及其字段、关系和结构 yes yes
searchContent 使用过滤器、全文搜索、排序和分页搜索和查询任何内容类型 yes yes
writeContent 创建或更新任何内容类型的文档 yes yes
triggerAnimation 触发3D化身动画(说话、挥手、点头、思考、庆祝、摇晃、旋转) 是 --

项目结构

server/src/plugins/ai-sdk/
├── admin/src/          # React admin UI (chat, 3D avatar)
├── server/src/
│   ├── controllers/    # Route handlers
│   ├── services/       # Business logic bridge
│   ├── tool-logic/     # Shared tool implementations
│   ├── tools/          # AI SDK tool() wrappers for chat
│   ├── mcp/            # MCP server + tool handlers
│   ├── routes/         # Admin + content API routes
│   └── lib/            # AISDKManager, types, utils