見出し画像

Perplexity APIが進化!Sonarモデルを使った正確な情報取得ガイド

現代の情報社会では、正確で信頼できる情報を素早く取得することが求められています。しかし、インターネット上には膨大な情報があり、その中から正確な情報源を見つけるのは容易ではありません。そこで注目されるのが、Perplexity APIです。

そんな中、PerplexityはSonarという新しい世代の生成AIモデルを発表しました。今回は、Sonarを使ったAPIの利用方法とその活用について詳しく解説します。


そもそも「Perplexity API」とは?

Perplexityは、AIによる検索結果と生成した情報を融合させた画期的な情報取得ツールです。通常のAI生成サービスとは異なり、参照元のURLを返すことで、信頼性を裏付けるデータも同時に取得できる点が大きな特長です。

PerplexityのWebサイト

Perplexityの主なメリット

  • 情報の信頼性を確保: 回答とともに引用元が提供されるため、出所を確認しながらリサーチが可能

  • 最新情報を取得: 最新のデータやニュースに基づいた回答も可能

  • 多様な応用分野: 学術リサーチ、ビジネスレポート、技術調査などさまざまな用途で利用

次世代生成AIモデル「Sonarモデル」とは?

Sonarモデルは、Perplexityの最新の情報検索および生成AIモデルです。旧バージョンであるllama-3.1モデルが廃止される中、Sonarモデルはより高いパフォーマンスと検索機能を提供します。

Sonar(Webサイトより)

SonarとSonar Proの違い

  • Sonarモデル: 一般的な質問に対して迅速かつ正確な回答を提供するベースモデル

  • Sonar Proモデル: より高度なリサーチに対応し、複雑なプロンプトに対する多層的な回答が可能

Sonarモデルの特徴

  • リアルタイム検索との統合: 最新の検索結果を回答に反映

  • 参照URLの提供: 情報源を引用し、信頼性を強化

  • 高速なレスポンス: プロンプトに対する応答速度が向上

Perplexityからの公式メールでも、今後はSonarおよびSonar Proモデルへの移行が推奨されています。

SonarとSonar Proの料金体系

SonarとSonar Proの価格は下記の通りです。

Sonar Proの価格(Webサイトより)
Sonar の価格(Webサイトより)

詳細な価格は下記をご確認ください。

Perplexity APIの準備

ステップ1: APIキーの取得

まずは、Perplexityの公式サイトでアカウントを作成し、APIキーを取得してください。このキーは、APIリクエスト時に認証情報として必要です。

ステップ2: 必要なライブラリのインストール

Python環境で必要なライブラリをインストールします。

pip install requests python-dotenv

ステップ3: 環境変数の設定

APIキーを環境変数に設定するために、プロジェクトフォルダに.envファイルを作成し、次のように記述します。

PERPLEXITY_API_KEY=your_api_key_here

実際にAPIを使ってみよう

以下に、情報を取得し参照URLを確認できるサンプルコードを示します。今回は、Sonar Proモデルを利用しています。

サンプルコード:大学共通テスト「情報I」を採用する大学の調査

import os
import requests
from dotenv import load_dotenv

load_dotenv()

def create_headers():
    api_key = os.getenv('PERPLEXITY_API_KEY')
    if not api_key:
        raise ValueError("PERPLEXITY_API_KEYが環境変数に設定されていません")
    return {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

def get_completion(prompt, system_message=None):
    headers = create_headers()
    messages = [{"role": "user", "content": prompt}]
    
    if system_message:
        messages.insert(0, {"role": "system", "content": system_message})
    
    payload = {
        "model": "sonar-pro",        # 使用するAIモデルの種類
        "messages": messages,         # ユーザーとシステムの会話履歴
        "temperature": 0,          # 応答の創造性(低いほど一貫性が高い)
        "top_p": 0.9,               # トークン選択の多様性(nucleus sampling)
        "search_domain_filter": ["perplexity.ai"],  # 検索対象のドメインを制限
        "return_images": False,      # 画像を返すかどうか
        "return_related_questions": False,  # 関連質問を返すかどうか
        "top_k": 0,                 # 考慮する検索結果の数
        "stream": False,            # ストリーミングレスポンスを使用するかどうか
        "presence_penalty": 0,      # 同じトピックの繰り返しを抑制
        "frequency_penalty": 1      # 同じ単語の繰り返しを抑制
    }

    response = requests.post(
        "https://api.perplexity.ai/chat/completions",
        json=payload,
        headers=headers
    )
    response_data = response.json()
    content = response_data['choices'][0]['message']['content']
    urls = response_data.get('citations', [])
    return content, urls

if __name__ == "__main__":
    response, urls = get_completion(
        prompt="2025年の大学の選抜のために大学共通テストの科目「情報I」が採用されている大学はどこですか?全国の国立大学、私立大学を分る範囲の全てを対象として調査してください。大学名、情報Iの配点を表形式で出力してください。",
        system_message="簡潔で正確な回答をしてください。"
    )
    
    print("応答:", response)
    if urls:
        print("\n参照URL:")
        for i, url in enumerate(urls):
            print(f"{i+1}. {url}")

実行結果は下記の通りです。

応答: 2025年の大学入学共通テストで「情報I」を採用する大学について、国立大学と私立大学の一部を表形式でまとめました。配点情報が公開されている大学を中心に記載しています。

| 大学名 | 情報Iの配点 |
|--------|-------------|
| 東京大学 | 100|
| 京都大学 | 学部により50-200点 |
| 一橋大学 | 学部により50-150|

(省略)

参照URL:
1. https://www.sokunousokudoku.net/media/?p=10041
2. https://kblog.benesse.ne.jp/digitalmyvision/jyuken/015478/
3. https://shingakunet.com/journal/exam/20240722000001/

(省略)


まとめ

Perplexity APIとSonarモデルは、単なるAI回答生成にとどまらず、参照元情報も提供するため、情報の信頼性を保ちながら効率的な情報取得が可能です。

Sonar Proを活用すれば、より深いリサーチにも対応でき、特にビジネスレポートや技術調査においてその効果を発揮します。

APIを活用して、プロジェクトの情報収集やレポート作成を効率化しましょう!

いいなと思ったら応援しよう!