見出し画像

PerplexityのAPIをiOSから使う

OpenAI APIをはじめ、多くのチャットモデルはWeb検索までは行ってくれない。で、SerpApiを組み合わせるとかいろいろと手段はあると思うのだが、手っ取り早くPerplexity APIを使ってみることにした。

ちなみにChatGPT o1はこんなことを言ってたのだが、

2025年1月時点では、Perplexity は公式に外部向けAPIを公開していない可能性 が高く、

o1が2025.1.18に返してきた回答より引用

PerplexityはAPIを用意してくれている:


公式ドキュメント

クイックスタートガイド:

リファレンス:

curlでサッと試す

API Keyを取得してきて、以下を投げればすぐに試せる

curl --location 'https://api.perplexity.ai/chat/completions' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Authorization: Bearer {API_KEY}' \
--data '{
  "model": "llama-3.1-sonar-small-128k-online",
  "messages": [
    {
      "role": "system",
      "content": "Be precise and concise."
    },
    {
      "role": "user",
      "content": "How many stars are there in our galaxy?"
    }
  ]
}'

(公式ガイドに貼ってあるサンプルです)

上記コマンドで「鎌倉材木座にある補陀落寺について教えてください。」というプロンプト(user content)を投げると、以下のようなレスポンスが返ってきた。

{"id": "xxxx", "model": "llama-3.1-sonar-small-128k-online", "created": 1737140066, "usage": {"prompt_tokens": 23, "completion_tokens": 290, "total_tokens": 313}, "citations": ["https://ja.wikipedia.org/wiki/%E8%A3%9C%E9%99%80%E6%B4%9B%E5%AF%BA_(%E9%8E%8C%E5%80%89%E5%B8%82)", "https://shonan-el.co.jp/rekishitansaku/220924kanji/", "https://www.trip-kamakura.com/place/219.html", "https://tuesgenial.exblog.jp/27196931/", "https://www.kyototuu.jp/Temple/FudarakuJi.html"], "object": "chat.completion", "choices": [{"index": 0, "finish_reason": "stop", "message": {"role": "assistant", "content": "\u938c\u5009\u5e02\u6750\u6728\u5ea7\u306b\u3042\u308b\u88dc\u9640\u6d1b\u5bfa\uff08\u3075\u3060\u3089\u304f\u3058\uff09\u306f\u3001\u771f\u8a00\u5b97\u5927\u899a\u5bfa\u6d3e\u306e\u5bfa\u9662\u3067\u3059\u3002\u4ee5\u4e0b\u306e\u60c5\u5831\u304c\u78ba\u8a8d\u3055\u308c\u3066\u3044\u307e\u3059\uff1a\n\n- **\u5275\u5efa\u5e74**: \u990a\u548c\u5143\u5e74\uff081181\u5e74\uff09\n- **\u958b\u5c71**: \u6587\u899a\u4e0a\u4eba\n- **\u958b\u57fa**: \u6e90\u983c\u671d\n- **\u672c\u5c0a**: \u5341\u4e00\u9762\u89b3\u97f3\u83e9\u85a9\n- **\u5225\u540d**: \u7adc\u5dfb\u5bfa\uff08\u305f\u3064\u307e\u304d\u3067\u3089\uff09\n- **\u6587\u5316\u8ca1**: \u591a\u304f\u306e\u4ecf\u50cf\u304c\u5b89\u7f6e\u3055\u308c\u3066\u304a\u308a\u3001\u5e73\u5b89\u6642\u4ee3\u306e\u5341\u4e00\u9762\u89b3\u97f3\u7acb\u50cf\u3084\u6c5f\u6238\u6642\u4ee3\u306e\u4e0d\u52d5\u660e\u738b\u5750\u50cf\u306a\u3069\u304c\u542b\u307e\u308c\u307e\u3059[1][2]\u3002\n- **\u6b74\u53f2**: \u6e90\u983c\u671d\u306e\u7948\u9858\u6240\u3068\u3057\u3066\u5efa\u7acb\u3055\u308c\u3001\u5e73\u5bb6\u306e\u8d64\u65d7\u304c\u5bfa\u5b9d\u3068\u3057\u3066\u4f1d\u308f\u3063\u3066\u3044\u307e\u3059[2][3]\u3002\n- **\u30a2\u30af\u30bb\u30b9**: \u6c5f\u30ce\u96fb\u548c\u7530\u585a\u99c5\u304b\u3089\u5f92\u6b6917\u5206\u3001\u4eac\u6d5c\u6025\u884c\u30d0\u30b9\u938c\u5009\u767a\u9017\u5b50\u99c5\u884c\u304d\u938c40\u7cfb\u7d71\u3001\u938c\u5009\u767a\u5c0f\u576a\u884c\u304d\u938c41\u7cfb\u7d71\u6750\u6728\u5ea7\u30d0\u30b9\u505c\u304b\u3089\u5f92\u6b692\u5206[1][3]\u3002\n\n\u3053\u306e\u5bfa\u9662\u306f\u938c\u5009\u4e09\u5341\u4e09\u89b3\u97f3\u970a\u5834\u7b2c17\u756a\u672d\u6240\u3067\u3042\u308a\u3001\u6b74\u53f2\u3068\u6587\u5316\u8ca1\u304c\u8c4a\u304b\u306a\u5bfa\u9662\u3067\u3059\u3002"}, "delta": {"role": "assistant", "content": ""}}]}

ちゃんとソースのURLも取得できている。

回答部分をデコードした結果がこちら:

鎌倉市材木座にある補閥洛寺(ふだらくじ)は、真言宗大覚寺派の寺院です。以下の情報が確認されています:

- **創建年**: 養和元年(1181年)
- **開山**: 文覚上人
- **開基**: 源厚朝
- **本尊**: 十一面観音ラサス
- **別名**: 矢延寺(たつまきでら)
- **文化財**: 多くの肖像が安置されており、平安時代の十一面観音立像や江戸時代の不動明王坐像などが含まれます[1][2]。
- **歴史**: 源厚朝の祈願所として建立され、平家の赤旗が寺宝として伝わっています[2][3]。
- **アクセス**: 江ノ電和田田駅から徒歩17分、京浜急行バス鎌倉発行バス子駅行き鎌40系統、鎌発小横行き鎌41系統素材座バス停から徒歩2分[1][3]。

この寺院は鎌倉三十三観音霊場第17番座所であり、歴史と文化財が豊かな寺院です。

Perplexity APIから返ってきた回答

(ちなみにこの質問はOpenAI APIのgpt-4oに投げたときに「知らない」と言われた)

iOSから使うサンプル

こんな感じでPerplexity APIで検索できるiOSサンプルをつくった:

コード

iOS GenAI Samplerに追加したので気になれば見てみてください。

よろしければ ⭐ いただけると大変うれしいです!

ここから先は

0字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/