laf.dev Google搜索

作者: gavin 分类: AI 发布时间: 2024-08-08 16:50
// 脚本中引入了 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: "异常" };
  }
}