README
🚀 基于模型上下文协议的Perplexity集成项目
这是一个基于模型上下文协议(Model Context Protocol)构建的项目,主要用于实现与Perplexity的集成。借助该项目,我们能够利用Perplexity强大的搜索引擎和大语言模型(LLM),为用户提供更智能、更高效的搜索增强问答功能。
🚀 快速开始
安装依赖
npm install mcp-ts-template @perplexity/api
初始化配置
创建一个config.ts文件,并添加以下内容:
export const config = {
api_key: 'your-perplexity-api-key',
search_context_size: 5,
// 其他自定义配置
};
启动服务
运行命令:
npm run dev
✨ 主要特性
- 搜索增强问答:用户可以通过自然语言查询,获得基于Perplexity搜索结果的答案。
- 多参数支持:允许自定义搜索行为,例如指定返回相关问题、过滤搜索时间范围和域名等。
- 可扩展性:框架设计灵活,便于添加新的工具或功能模块。
📚 详细文档
架构设计
项目的整体架构遵循清晰的分层原则:
┌──────────────┐
│ Client │
└──────┬───────┘
│
┌──────▼───────┐
│ Handler │
└──────┬───────┘
│
┌──────▼───────┐
│ Server │
└──────┬───────┘
│
┌──────▼───────┐
│ Services │
└──────┬───────┘
│
┌──────▼───────┐
│ Config │
└──────┬───────┘
│
┌──────▼───────┐
│ Database │
└──────────────┘
工具文档
perplexity_search 工具
该工具通过Perplexity API执行搜索增强查询,主要用于回答基于网络搜索结果的问题。
输入参数
| 参数名称 | 类型 | 是否必填 | 描述 |
|--------------------------|----------|----------|------------------------------------------------------------------------------------------------------------|
| query | string | 是 | 用户的原始搜索查询或问题 |
| return_related_questions | boolean | 否 | 设置为true时,Perplexity模型会一并返回相关问题(默认值:false) |
| search_recency_filter | string | 否 | 控制搜索结果的时间范围过滤器(例如:'hour', 'day', 'week', 'month', 'year') |
| search_domain_filter | string[] | 否 | 指定要过滤的域名列表 |
示例用法
const result = await perplexity_search({
query: "什么是人工智能?",
return_related_questions: true,
search_recency_filter: 'week',
search_domain_filter: ['example.com']
});
开发指南
项目结构
src/: 包含核心业务逻辑和模块。config/: 存放应用程序的配置文件。types/: 定义自定义类型和接口。
快速开发流程
- 创建新功能模块:
- 在
src/components目录下新建一个组件文件。 - 实现相关业务逻辑,并确保符合项目规范。
- 在
- 测试新功能:
- 使用单元测试框架(如Jest)编写并运行测试用例。
- 确保所有新增功能通过测试验证。
- 部署与发布:
- 本地运行
npm run build生成构建文件。 - 提交代码到版本控制系统,并按照语义化版本进行发布。
- 本地运行
项目维护
- 日志记录:在关键业务逻辑处添加适当的日志输出,便于调试和监控。
- 错误处理:为所有API调用和外部服务交互提供完善的错误捕捉与恢复机制。
- 性能优化:定期审查代码并优化潜在的性能瓶颈。
📄 许可证
本项目遵循MIT License,允许自由使用、修改和分发,但需保留版权声明。
微信扫一扫