内容
next-sitecore-ai
一个开源的AI工具包,为Sitecore XM Cloud + Next.js项目带来RAG、语义搜索和内容建议。
[](.npmjs.com/package/next-sitecore-ai)
[](LICENSE)
[](http://makeapullrequest.com)
**[在线演示](https://next-sitecore-ai-demo.vercel.app)** · **[npm](https://npmjs.com/package/next-sitecore-ai)**
## 为什么存在
希望在XM Cloud项目中添加AI功能的Sitecore开发者没有起点。Experience Edge、嵌入、向量存储和流式LLM路由在每个团队中都不同。
每个团队都从头开始构建相同的RAG管道、相同的嵌入基础设施和相同的钩子。该软件包消除了这一点。
## 包含内容
| 软件包 | 描述 |
| --- | --- |
| **核心钩子** | `useContentSuggestion`、`useSearchEnhance`、`usePersonalize` |
| **RAG管道** | Experience Edge摄入、pgvector存储、语 |
| **MCP服务器 五种工具,将XM Cloud暴露给Cursor和Claude等AI代理 |
| **CLI** |-sitecore-ai-app`(即将推出) |
快速开始
**1.包**
```bash
npm-sitecore-ai
```
. 设置环境变量**
内容添加到 `.env.local`| 变量 | 描述 |
| --- |
| `SITE_URL` | Experience Edge GraphQL端点URL |
| `_EDGE_TOKEN` | Experience密钥 |
| `SITECORE_SITE_NAME` | 在XM Cloud中配置的站点名称 |
| `_DEFAULT_LANGUAGE` | 默认内容语言(例如`en`) |
| `OPENAI_API_KEY` | 用于嵌入和LLM调用的OpenAI API密钥 |
| `SUPABASE_URL` | 用于pgvector存储的Supabase项目URL |
| `SUPABASE_SERVICE_ROLE_KEY` | 用于服务器端写入和查询的Supabase服务角色密钥 |
**3. 运行摄入脚本**
将 [`scripts/ingest.ts/ingest.ts) 复制到您的项目中。用您ecore更新 `ROOT_PATHS` 数组:
```ts
const ROOT_PATHS = [
'/sitecore/content/YourSite/yoursite/Home/Data',
'/sitecore/content/YourSite/y/Home/About',
// 添加您要递归爬取的路径
]
```
脚本会在每个根路径下递归发现所有,跳过没有有意义文本的项,并限制每次运行的项数为50,以避免速率限制:
```bash
npx tsx scripts/ingest.ts
```
**4. 使用钩```tsx
'use client';
useContentSuggestion } from-sitecore-ai/client function SuggestButton({ itemPath }: { itemPath: string }) {
{ suggestion, suggest, } = useContentSuggestion(item return (
< <button onClick suggest()} disabled={isLoading 建议改进
>
{suggestion &&>{suggestion}</p </div>
);
}
```
您还需要 `/api/ai/suggest处的匹配API路由。示例,请参阅 [](apps/demo/app/api/ai/suggest/route.ts)。
##子
从 `next-s-ai/client` 导入钩子。每个钩子都调用您提供的Next.js API路由。
ContentSuggestion
为Sitecore项目字段流式传输AI生成。向 `/api/ai/suggest` itemPath,? }`。
```'use client';
import { use } from 'next-s-ai/client';
const { suggestion, isLoading, error useContentSuggestion '/sitecore/content/Site/home',
);
// 可选:传递字段名称以聚焦建议
suggest('Title');
```
### useance
通过AI语义结果增强搜索。向 `/api/ai/search` 发送 `{` 并返回增强和集。
```tsx
'use client';
import { useSearchEnhance } from 'next-sitecore-ai/client';
const { results, search, } = useSearchEnhance();
await search('corporate litigation services### usePersonalize
根据受众细分,为解析个性化体。向 `//personalize` 发送 `{ guestId,`。
```'use client';
import { usePersonalize, type ContentVariant } from 'next-sitecore-ai/client';
const variants: ContentVariant[] = [
{ itemPath: '/sitecore/content/Site/home', segmentName: 'Enterprise' },
{ itemPath: '/sitecore/content/Site/home segmentName:B' },
];
const, segment, isLoading usePersonalize('guest', variants);
```
## RAG管道
该管道从Experience取文本内容,将其分嵌入OpenAI,存储Supabase pgvector中的向量,并通过语义相似性搜索回答问题。运行摄入一次(以保持向量已发布内容的同步。
```npx tsx scriptsest.ts
```
添加一个查询已摄入内容的路由:
```ts
///ai/chat/route.tsRAGQuery 'next-sitecore-ai/server';
export async function POST(request) {
const { question } = await request.json();
const rag = createRAGQuery({
supabaseUrl: process.env.SUPABASE_URL!,
supabaseServiceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY!,
openAiApiKey: process.env.OPENAI_API_KEY!,
siteName: process.env.SITECORE_SITE_NAME!,
const { answer, = await rag.query(question return new Response(answer, {
headers: { 'X': JSON.stringify(sources) });
}
```
## MCPMCP服务器将您的XM Cloud内容和向量索引暴露给AI编码代理。安装 `@itecore-ai/mcp-server` 并将其添加到您的MCP客户端配置中。它读取与工具包其余部分相同的 `.env.local` 变量。
```json
{
"mcpServers "sitecore": {
"command": "node "args": ["./nodenext-sitecore-ai/mcp-server/dist/index.js"],
"env": {
"SITECORE_EDGE_URL": "https://your-edge-url",
"SITECORE_EDGE_TOKEN": "your-edge-token",
"SITECORE_SITE_NAME": "your-site-name",
"SITECORE_DEFAULT_LANGUAGE": "en",
"OPENAI_API_KEY": "your-openai "SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "-role-key"
}
}
}
```
**| 工具 | 描述 --- | --- |
|_item` | 通过项目路径获取Sitecore内容项及其所有 `get_text_content` | 从项目中获取纯去除HTML并删除系统字段 |
| `search_content` | 对摄入的内容进行自然语言查询的语义搜索 |
| `list_site_pages` | 列出Sitecore根路径下的顶级页面 |
| `get_site_info` | 返回配置的站点名称、语言和Edge端点 |
## 要求
- Next.js 14+
- React 18+
- 带有Experience Edge的Sitecore XM Cloud
- OpenAI API密钥
- 带有pgvector的Supabase项目
## 贡献
欢迎贡献 — 错误报告、功能请求和拉取请求都有帮助。在提交PR之前,请先打开 [问题](https://github.com/Meezan35/next-sitecore-ai/issues/new) 讨论更改。
## 许可证
MIT