
內容簡介
ChatProjects 將 AI 聊天功能引入 WordPress,讓用戶能夠根據自己的文件進行互動。用戶可以創建專案,上傳政策、手冊或筆記,並提出問題,系統將根據文件提供答案,並標示來源文件。
【主要功能】
• 與文件進行對話,獲取基於文件的答案
• 在網站上添加聊天小工具,訪客可提問
• 自動索引文章和頁面內容
• 支援多種 AI 模型切換
• 專案私密性,僅創建者可見
• 自訂嵌入方式,支援全螢幕應用
外掛標籤
開發者團隊
原文外掛簡介
ChatProjects brings AI chat into WordPress, grounded in your own documents. Create a project, upload your policies, manuals or notes, and ask questions. Answers come from your files, and each one lists the files it used.
You use your own API keys. Nothing goes through our servers, and there’s no account to create.
What you can do
Chat with your documents. Each project has its own files, instructions and chat history. Answers name the files they came from.
Add a chat widget to your website. Visitors ask questions and get answers from a project’s documents. Turn it on per project, then show it on every page or place it with a shortcode.
Answer from your posts and pages (Auto-RAG). Index your published content into a project. Edited posts are re-indexed, and posts you unpublish or delete are removed.
Chat with the model you prefer. Switch between OpenAI GPT-5.6, Anthropic Claude Opus 5.5, Google Gemini 3.8, DeepSeek V4 and hundreds of models through OpenRouter, all in one chat screen.
Keep projects private. Each project belongs to the person who created it, and administrators can see all of them. Give team members the Projects User role.
Use it your way. Open the full-screen app at /chatprojects/, or embed it on any page with a shortcode. Light and dark mode included.
What you need
An OpenAI API key for projects, document chat, the website widget and Auto-RAG. File search runs on OpenAI vector stores.
Optionally, keys for Anthropic, Google Gemini, Chutes or OpenRouter, to use their models in general chat.
WordPress 6.6 or later and PHP 8.0 or later.
The plugin is free. You pay your AI provider directly for what you use.
Supported AI providers
OpenAI: GPT-5.6 Sol, Terra and Luna, GPT-5.5, GPT-5.4, GPT-5.4 Mini and Nano
Anthropic: Claude Opus 5.5, Sonnet 5.5, Fable 5.1, Opus 5, Sonnet 5, Opus 4.8, Sonnet 4.6, Haiku 4.5
Google Gemini: Gemini 3.8 Flash, 3.7 Flash, 3.5 Flash, 3.5 Flash Lite, 3.1 Pro (preview)
Chutes: DeepSeek V4 Flash, DeepSeek V3.2 and the other models Chutes hosts
OpenRouter: hundreds of models from many providers
Developers can add custom or fine-tuned models with the chatprojects_models filter.
Shortcodes
[chatprojects_main] shows the full app on any page. Add default_tab="chat" or default_tab="settings" to choose what its main button opens (projects by default).
[chatprojects_widget project="123"] shows the website chat widget for project 123.
ChatProjects Pro
ChatProjects Pro adds team sharing, a prompt library, side-by-side model comparison, image generation, transcription and usage analytics. Everything in this plugin is free to use; Pro adds features, it doesn’t unlock this one.
Privacy Policy
ChatProjects stores your API keys encrypted in your WordPress database. The plugin connects directly to AI provider APIs (OpenAI, Anthropic, Google, Chutes, OpenRouter) using your own API keys. No data is sent to our servers.
For more information, see our Privacy Policy.
External services
This plugin connects to the external AI services listed below, using API keys the site owner provides. Nothing is sent until an administrator adds a key for a service.
Data Transmitted
Chat Messages: Text (and attached images) a logged-in user sends is sent to the AI provider they selected, together with recent conversation history
Website Widget Messages: Messages typed by site visitors into the [chatprojects_widget] chat are sent to OpenAI with the project’s instructions
Uploaded Files: File contents are sent to OpenAI when users upload or import a file into a project
Auto-RAG Content: When an administrator starts indexing, the title, URL, date, author, categories and text of published, public posts and pages are uploaded to the project’s OpenAI vector store in background batches. Edited posts are re-uploaded, and posts that are unpublished or deleted are removed
System Instructions: Project or chat instructions are included with chat requests
Chat Titles: The first message and reply of a chat are sent to OpenAI to generate a short title
When Data Is Sent
When a user or widget visitor sends a chat message
When a file is uploaded or imported into a project (OpenAI only)
While Auto-RAG indexing runs, and when an indexed post is edited (OpenAI only)
API Keys
Site owners supply their own API keys – this plugin does not provide access to any AI service
Keys are encrypted (libsodium secretbox) and stored locally in the WordPress database
Keys are never transmitted to chatprojects.com or any third party
Service Providers
OpenAI API
Used for AI chat, file analysis via Responses API, and vector store functionality.
* Service URL: https://api.openai.com/
* Privacy Policy: https://openai.com/privacy/
* Terms of Service: https://openai.com/terms/
Anthropic Claude API
Optional AI provider for chat features.
* Service URL: https://api.anthropic.com/
* Privacy Policy: https://www.anthropic.com/privacy
* Terms of Service: https://www.anthropic.com/terms
Google Gemini API
Optional AI provider for chat features.
* Service URL: https://generativelanguage.googleapis.com/
* Privacy Policy: https://policies.google.com/privacy
* Terms of Service: https://policies.google.com/terms
Chutes API (DeepSeek)
Optional AI provider for chat features using DeepSeek models.
* Service URL: https://llm.chutes.ai/
* Privacy Policy: https://chutes.ai/privacy
* Terms of Service: https://chutes.ai/terms
OpenRouter API
Optional AI provider giving access to 100+ models from various providers.
* Service URL: https://openrouter.ai/api/
* Privacy Policy: https://openrouter.ai/privacy
* Terms of Service: https://openrouter.ai/terms
* Note: When using OpenRouter, your site URL and site name are sent in HTTP headers as required by OpenRouter’s API for attribution and rate limiting purposes.
Your Control
You choose which API providers to configure. Only providers with valid API keys configured will receive any data. Each provider handles transmitted data according to their own privacy policies linked above.
Third-Party Libraries
This plugin includes the following third-party JavaScript libraries:
Alpine.js
Version: 3.x
License: MIT
Source: https://github.com/alpinejs/alpine
License file: licenses/ALPINE.txt
highlight.js
Version: 11.x
License: BSD-3-Clause
Source: https://github.com/highlightjs/highlight.js
License file: licenses/HIGHLIGHT.txt
marked
Version: 16.x
License: MIT
Source: https://github.com/markedjs/marked
License file: licenses/MARKED.txt
DOMPurify
Version: 3.x
License: Apache-2.0 (dual licensed Apache-2.0 / MPL-2.0)
Source: https://github.com/cure53/DOMPurify
License file: licenses/DOMPURIFY.txt
Development
Source Code
The uncompressed source code for all JavaScript and CSS files is available at:
https://github.com/chatprojects-com/chatprojects
Build Instructions
Clone the repository: git clone https://github.com/chatprojects-com/chatprojects.git
Install dependencies: npm install
Build for production: npm run build
The source files are located in assets/src/ and compile to assets/dist/.
Technical Notes
Streaming via WordPress HTTP API:
This plugin uses the WordPress HTTP API (wp_remote_post) for AI provider streaming. For real-time SSE chunk handling, it leverages the http_api_curl action hook to attach a CURLOPT_WRITEFUNCTION callback only when the WordPress HTTP API selects the cURL transport. This preserves WordPress compatibility (proxy settings, transport fallback, and security hooks) while still enabling low-latency streaming.
If cURL is not available, the HTTP API will fall back to other transports and the request will still complete (though streaming callbacks are only available when cURL is the active transport).
PHP Configuration:
SSE streaming clears output buffers and turns off output compression for the streaming request only, not globally.
