cheapaimodel

LangChain

OpenAI互換APIで、LangChainからcheapaimodelのモデルを使います。

コピー

LangChainは、OpenAIインテグレーションのChatOpenAI(Pythonはlangchain-openai、TypeScriptは@langchain/openai)でOpenAI互換サービスに接続します。Base URLをcheapaimodelに変更し、cheapaimodelのAPIキーを渡します。

LangChainの設定項目値
Base URLbase_urlhttps://api.cheapaimodel.ai/v1
APIキーapi_keyコンソールのAPIキーページで発行したキー
モデルIDmodeldeepseek-v4-1-flash、またはモデルカタログにある任意のID

設定

表の項目名はPythonのものです。TypeScriptではconfiguration.baseURL、apiKey、modelになり、Base URLはconfigurationの中に書きます。

現行のlangchain-openaiにはPython 3.10以降が必要です。

ターミナル
pip install -U langchain-openai
main.py
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-v4-1-flash",
    base_url="https://api.cheapaimodel.ai/v1",
    api_key=os.environ["CHEAPAIMODEL_API_KEY"],
)

response = llm.invoke("Explain recursion in one sentence.")
print(response.text)

# ストリーミング
for chunk in llm.stream("Write a haiku about the sea."):
    print(chunk.text, end="", flush=True)

ChatOpenAIは/v1/chat/completionsにリクエストを送ります。モデルカタログでこのエンドポイントが記載されているモデルなら、どれでもdeepseek-v4-1-flashの代わりに使えます。

init_chat_modelを使う場合

Pythonでは、langchainパッケージのinit_chat_modelも同じ設定を受け取ります。model_provider="openai"を必ず渡してください。省略すると、LangChainはモデルIDからプロバイダーを推測し、誤ったインテグレーションを選ぶか、推測に失敗します。

main.py
import os
from langchain.chat_models import init_chat_model

llm = init_chat_model(
    "deepseek-v4-1-flash",
    model_provider="openai",
    base_url="https://api.cheapaimodel.ai/v1",
    api_key=os.environ["CHEAPAIMODEL_API_KEY"],
)

埋め込み

cheapaimodelにはまだ埋め込みモデルがありません。OpenAIEmbeddings(またはretrieverで使っている埋め込みクラス)は従来のプロバイダーのまま使い、cheapaimodelのBase URLを設定しないでください。

よくある間違い

  • 'baseURL' does not exist in type 'ChatOpenAIFields'(TypeScript)。baseURLはconfigurationの中に書きます。素のJavaScriptではトップレベルに書いたbaseURLがエラーなしで無視され、cheapaimodelのAPIキーを付けたリクエストがOpenAIに送られます。
  • init_chat_modelでrequires the langchain-deepseek packageまたはUnable to infer model providerが出る。 model_provider="openai"を追加してください。
  • /v1/embeddingsでmodel_not_found付きの503が返る。 OPENAI_BASE_URLまたはOPENAI_API_BASEにcheapaimodelのBase URLがexportされています。この環境変数はChatOpenAIだけでなくOpenAIEmbeddingsも読み込むため、埋め込みのリクエストまでcheapaimodelに送られます。環境変数は使わず、コードでbase_urlを渡してください。
  • <bound method BaseMessage.text ...>と出力される。 Pythonが3.10より古いため、pipが0.3系をインストールしています。0.3系ではtextはメソッドです。Pythonをアップグレードして再インストールしてください。
  • /v1/chat/completionsでmodel_not_found付きの503が返る。 modelが未指定でLangChainがOpenAIのデフォルトgpt-3.5-turboを送っているか、カタログにないIDを指定しています。modelにはモデルカタログにあるIDを指定してください。

/v1の付け忘れなど、Base URLの誤りについてはBase URLを参照してください。

コピー
開く

このページの内容