WishfulSearch 开源项目教程
1. 项目介绍
WishfulSearch 是一个用于复杂 JSON 数组的自然语言搜索模块。它允许用户对任何 JSON 数组(如通知、电影、航班、人员等)进行复杂的查询和过滤。WishfulSearch 处理了提示生成、数据库管理、对象到关系转换和查询格式化等任务。该项目旨在教育目的,使用时需自行承担风险。
2. 项目快速启动
安装
服务器端
npm i wishful-search
客户端
直接获取 wishfulsearch.js
文件,或从源码编译一个更小的版本。
使用
选择模型
import OpenAI from 'openai';
const openai = new OpenAI();
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic();
const GPTLLMAdapter = LLMAdapters.getOpenAIAdapter(openai, { model: 'gpt-4' });
const ClaudeLLMAdapter = LLMAdapters.getClaudeAdapter(Anthropic.HUMAN_PROMPT, Anthropic.AI_PROMPT, anthropic, { model: 'claude-2' });
const MistralLLMAdapter = LLMAdapters.getMistralAdapter({ model: 'mistral', temperature: 0.1 });
AI 快速启动
import OpenAI from 'openai';
const openai = new OpenAI();
import { autoAnalyzeObject, LLMAdapters } from 'wishful-search';
const GPTLLMAdapter = LLMAdapters.getOpenAIAdapter(openai, { model: 'gpt-4' });
const results = await autoAnalyzeObject(movies[0], GPTLLMAdapter.callLLM, '~/tmp');
创建 WishfulSearch 实例
const wishfulSearchEngine = await WishfulSearchEngine.create(
'movies', // 搜索实例名称
MOVIES_DDL, // 结构化 DDL
movieToRows, // 对象到关系函数
{
enableTodaysDate: true, // 通知模型当前日期
fewShotLearning: [], // 少量示例学习
},
GPT4LLMAdapter.callLLM, // LLM 调用函数
(movie: Movie) => movie.id, // 对象到 ID 函数
true, // 保存问题历史
true, // 启用动态枚举插入
true, // 按频率排序动态枚举
undefined // sql.js wasm URL
);
3. 应用案例和最佳实践
案例:搜索电影
WishfulSearch 可以用于搜索电影数据库。用户可以通过自然语言查询电影信息,例如“查找所有评分高于 8 分的科幻电影”。
最佳实践
- 模型选择:推荐使用 GPT-4 或 Claude-2 模型,它们在处理复杂查询时表现较好。
- 动态枚举:启用动态枚举可以提高搜索效率和准确性。
- 安全性:虽然 WishfulSearch 实现了一些安全过滤,但在处理敏感数据时仍需谨慎。
4. 典型生态项目
相关项目
- OpenAI API:用于接入 GPT 模型。
- Anthropic SDK:用于接入 Claude 模型。
- sql.js:用于客户端 SQLite 数据库管理。
集成示例
WishfulSearch 可以与其他数据处理和分析工具集成,例如与数据可视化工具结合,实时展示搜索结果。
通过以上步骤,您可以快速上手 WishfulSearch 项目,并利用其强大的自然语言搜索功能处理复杂的 JSON 数据。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考