// 脚本中引入了 cloud 模块
import cloud from '@lafjs/cloud';
// 定义 Google 搜索 API 的 key 和 cx(Custom Search Engine ID)
const googleSearchKey = "key";
const googleCxId = "cxid";
// Google 搜索 API 的基础 URL
const baseUrl = "https://www.googleapis.com/customsearch/v1";
// 定义请求的类型
type RequestType = {
searchKey: string;
};
// 导出一个异步函数,接收一个 FunctionContext 对象作为参数
export default async function (ctx: FunctionContext) {
// 从请求体中获取搜索关键词
const { searchKey } = ctx.body as RequestType;
// 如果搜索关键词不存在,则返回空 prompt
if (!searchKey) {
return { prompt: "" };
}
try {
// 发送 HTTP GET 请求到 Google 搜索 API
const { data } = await cloud.fetch.get(baseUrl, {
params: {
q: searchKey,
cx: googleCxId,
key: googleSearchKey,
},
});
// 提取搜索结果中的 snippet(摘要),并将其连接为一个字符串
const result = data.items.map((item: any) => item.snippet).join('\n');
// 返回搜索结果的 prompt
return { prompt: result };
} catch (err) {
// 如果发生错误,则返回异常信息
console.error(err);
ctx.response.status(500);
return { message: "异常" };
}
}