Skip to content

API 利用方法

PLaMo は、Preferred Networks が独自開発した国産の生成 AI 基盤モデルです。 既存の大規模言語モデルをベースに用いず、まったく新規に独自開発しており、日本語の応答、日英の翻訳性能に優れています。

本ドキュメントでは、PLaMo を Web API 経由で利用する方法について説明します。

APIキーの発行

PLaMoのAPI機能をご利用いただくためには、APIキーの発行が必要です。 APIキーを使用することで、HTTPリクエストを通じてPLaMoの機能にアクセスできます。

APIキーの発行のためにはアカウントを作成する必要があります。こちらからアカウントを作成してください。その後、ProfileページからAPIキーを作成してください。このAPIキーは厳重に管理し、他者と共有しないようにしてください。

発行したAPIキーは以下のように環境変数に設定してください。

bash
export PLAMO_API_KEY="your_api_key"

リクエスト発行

APIキーを環境変数に設定することで、PLaMo APIをご利用できます。 APIにはHTTPクライアントや、LLM APIを利用する各種ライブラリ経由でアクセスできます。

このドキュメントではcurl、およびPythonのlangchain-openaiライブラリ、openaiライブラリを利用したアクセス方法を紹介します。

curlを使ったリクエスト

PLaMo APIはWeb APIを提供しているため、curlなどのツールを利用してアクセスできます。 次の例は、前述の PLAMO_API_KEY が設定されていることを前提としています。

bash
$ curl \
    -H "Authorization: Bearer ${PLAMO_API_KEY}" \
    -H "Content-Type: application/json" \
    "https://api.platform.preferredai.jp/v1/chat/completions" \
    -d @- << EOF
{
  "messages": [
    {
      "role": "system",
      "content": "あなたは旅行アドバイザーです"
    },
    {
      "role": "user",
      "content": "金沢で朝から夕方まで1日のおすすめの観光ルートを教えて下さい"
    }
  ],
  "model": "plamo-2.2-prime"
}
EOF

これを実行すると、以下のような結果が表示されます。なお、実際に生成されるテキストは同一の入力とは限りません。

json
{
    "id": "chat-random-id-string",
    "object": "chat.completion",
    "created": 1234567890,
    "model": "plamo-2.2-prime",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "金沢で朝から夕方までのおすすめの観光ルートをご紹介します。\n\n\n【午前】\n\n兼六園を散策....(ドキュメントでは省略しています)",
                "tool_calls": []
            },
            "logprobs": null,
            "finish_reason": "stop",
            "stop_reason": null
        }
    ],
    "usage": {
        "prompt_tokens": 100,
        "total_tokens": 350,
        "completion_tokens": 250
    },
    "prompt_logprobs": null
}

Pythonでlangchain-openaiを使ったリクエスト

PLaMo APIは、langchain-openaiライブラリとのおおよその互換性があるため、このライブラリを利用できます。 なお、このライブラリは別の環境変数を利用するため、次のように別の環境変数名を利用してください。

bash
export OPENAI_API_KEY=$PLAMO_API_KEY

ライブラリは次の手順でインストールしてください。

bash
pip install langchain-openai

インストールが完了したら、次のファイルを plamo_example.py として作成してください。

python
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://api.platform.preferredai.jp/v1",
    model="plamo-2.2-prime",
    streaming=True,
    # other params...,
)

messages=[
    {"role": "system", "content": "あなたは旅行アドバイザーです"},
    {"role": "user", "content": "金沢で朝から夕方まで1日のおすすめの観光ルートを教えて下さい"},
]

for chunk in llm.stream(messages):
    print(chunk.content, end="", flush=True)

次のように実行すると、PLaMo APIにPython経由でアクセスできます。

bash
python plamo_example.py

Pythonでopenaiライブラリを使ったリクエスト

PLaMo APIは、openaiライブラリとの互換性があるため、このライブラリを利用できます。 なお、このライブラリも別の環境変数を利用するため、次のように別の環境変数名を利用してください。

bash
export OPENAI_API_KEY=$PLAMO_API_KEY

ライブラリは次の手順でインストールしてください。

bash
pip install openai

インストールが完了したら、次のファイルを plamo_example.py として作成してください。

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.platform.preferredai.jp/v1",
    # other params...,
)

completion = client.chat.completions.create(
    model="plamo-2.2-prime",
    messages=[
        {"role": "system", "content": "あなたは旅行アドバイザーです"},
        {"role": "user", "content": "金沢で朝から夕方まで1日のおすすめの観光ルートを教えて下さい"},
    ],
    stream=True,
)

for chunk in completion:
    if chunk.choices and chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="", flush=True)

次のように実行すると、PLaMo APIにPython経由でアクセスできます。

bash
python plamo_example.py

次のステップ

APIキーを組織として管理したい、利用量に制限をかけたいなどの用途にはコンソールからプロジェクトを作成してください。 コンソールの使い方は PLaMo API コンソールマニュアル を参照ください。

また、APIのパラメータの種類やデフォルト値などの完全な資料はAPIリファレンスに記載されています。