![見出し画像](https://assets.st-note.com/production/uploads/images/172292792/rectangle_large_type_2_464538269290f6b657b05064313063d5.png?width=1200)
Perplexity APIが進化!Sonarモデルを使った正確な情報取得ガイド
現代の情報社会では、正確で信頼できる情報を素早く取得することが求められています。しかし、インターネット上には膨大な情報があり、その中から正確な情報源を見つけるのは容易ではありません。そこで注目されるのが、Perplexity APIです。
そんな中、PerplexityはSonarという新しい世代の生成AIモデルを発表しました。今回は、Sonarを使ったAPIの利用方法とその活用について詳しく解説します。
そもそも「Perplexity API」とは?
Perplexityは、AIによる検索結果と生成した情報を融合させた画期的な情報取得ツールです。通常のAI生成サービスとは異なり、参照元のURLを返すことで、信頼性を裏付けるデータも同時に取得できる点が大きな特長です。
![](https://assets.st-note.com/img/1738225709-wvkxhtaNB6CnyGq5i3oHE8eK.png?width=1200)
Perplexityの主なメリット
情報の信頼性を確保: 回答とともに引用元が提供されるため、出所を確認しながらリサーチが可能
最新情報を取得: 最新のデータやニュースに基づいた回答も可能
多様な応用分野: 学術リサーチ、ビジネスレポート、技術調査などさまざまな用途で利用
次世代生成AIモデル「Sonarモデル」とは?
Sonarモデルは、Perplexityの最新の情報検索および生成AIモデルです。旧バージョンであるllama-3.1モデルが廃止される中、Sonarモデルはより高いパフォーマンスと検索機能を提供します。
![](https://assets.st-note.com/img/1738225505-8LKh4f7dmoZDQNq3VXJvitcG.png?width=1200)
SonarとSonar Proの違い
Sonarモデル: 一般的な質問に対して迅速かつ正確な回答を提供するベースモデル
Sonar Proモデル: より高度なリサーチに対応し、複雑なプロンプトに対する多層的な回答が可能
Sonarモデルの特徴
リアルタイム検索との統合: 最新の検索結果を回答に反映
参照URLの提供: 情報源を引用し、信頼性を強化
高速なレスポンス: プロンプトに対する応答速度が向上
Perplexityからの公式メールでも、今後はSonarおよびSonar Proモデルへの移行が推奨されています。
SonarとSonar Proの料金体系
SonarとSonar Proの価格は下記の通りです。
![](https://assets.st-note.com/img/1738226808-LTeAbsqVzScDxPJ23nRoQdyU.png?width=1200)
![](https://assets.st-note.com/img/1738226808-qu6nOIACEcB9Nhx2Sr3GwX1l.png?width=1200)
詳細な価格は下記をご確認ください。
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を活用して、プロジェクトの情報収集やレポート作成を効率化しましょう!