😄

ReactでAI用検索エンジンexaのapiを使用して検索するメモ

2024/12/16に公開

ReactでAI用検索エンジンexaのapiを使用して検索するメモ

exaはAI用の検索エンジンで同社はwebsetsという次世代LLM検索エンジンプラットフォームを公開して現在ウェイトリストが作られている。

そのexaのapiが15ドル分が無料なので、ドキュメントを見ていると、OpenAIの言語モデルを組み合わせることで、exaの検索結果からOpenAIのLLMで要約を生成するシステムなど色々作れるとある。

ドキュメントより

Exa is a search engine made for AIs.
Exa finds the exact content you’re looking for on the web, with three core functionalities:

検索結果も下記のようにJSON形式でとても分かりやすい。

{
  requestId: "xxxxxxxxxxxxxxxxxx",
  autopromptString: "検索ワード",
  resolvedSearchType: "xxx",
  results: [
    {
      score: 00000000000,
      title: "xxxx",
      id: "xxxx",
      url: "xxxx",
      publishedDate: "2012-11-17T00:00:00.000Z",
      author: "xxxx",
    },
    ...
  ],
}

実装

15ドル分無料なんで多少無駄遣いしても良いでしょうの精神でexa apiを使用して今回は単純に検索結果を表示するreactアプリケーションを作ってみる。

exa apiのダッシュボードにアクセスしてあらかじめapiキーを作成してください。

公式sdkを使用してAPIキーを渡すだけで簡単に使用できる

npm i exa-js

.envにAPI_KEYを作成する

EXA_API_KEY=XXX

検索関数

const onSearch = async (e: FormEvent<HTMLFormElement>) => {
  e.preventDefault();

  const exa = new Exa(process.env.NEXT_PUBLIC_EXA_API_KEY);

  if (search.length) {
    const posts = (await exa.search(search)) as Item;

    const convertedPosts = await fetchOpenGraphData(posts);

    setPosts({
      requestId: posts.requestId,
      autopromptString: posts.autopromptString,
      results: convertedPosts,
    });
  }
};

画面

画面

今回のリポジトリ

料金

こんな感じでした。

$5.00 / 1k neural searches (1-25 results)

$25.00 / 1k neural searches (26-100 results)

$2.50 / 1k keyword searches (1-100 results)

$1.00 / 1k pieces of content

いつかexaのapiを使って何かサービスが作れれば良いなと思う。

参考

最後に

間違っていることがあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion