Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

GPT4Free Pythonライブラリの使い方

中村 拓也

中村 拓也

Updated on 4月 5, 2025

導入

GPT4Freeは、さまざまなプロバイダーを通じて強力な言語モデルのコレクションにアクセスできるオープンソースのPythonライブラリです。これは、タイムアウト、負荷分散、フロー制御などの機能を備えたマルチプロバイダーAIリクエストを示す概念実証APIパッケージとして機能します。このライブラリを使用することで、開発者は多くの場合、公式APIキーを必要とせずにテキスト生成のためにGPT-3.5やGPT-4のバリアントなどさまざまな言語モデルを使用できます。

このチュートリアルでは、gpt4freeライブラリのインストール、セットアップ、および使用法を案内し、さまざまなAI駆動のテキスト生成タスクでその機能を活用する方法を示します。

法的考慮事項

💡
警告:このチュートリアルを進める前に、gpt4freeライブラリの使用に関する法的影響を理解することが重要です。

このリポジトリまたはそれに関連するコードを使用することにより、開発者が提供する法的通知に同意します。元の著者は、このリポジトリの使用に対して責任を負わず、またそれを支持しません。また、著者は他のユーザーによって作成されたコピー、フォーク、再アップロード、またはGPT4Freeに関連するその他の何かについても責任を負いません。

GPT4Freeは、主にマルチプロバイダーリクエストを使用したAPIパッケージの開発を示す概念実証として機能します。このライブラリを使用して公式APIを回避すると、さまざまなAIプロバイダーのサービス利用規約に違反する可能性があります。このライブラリに基づいたソリューションを本番環境に展開する前に、適切な承認を受け、使用する各プロバイダーのサービス利用規約に従ってください。

実装の詳細に入る前に、gpt4freeでAPIテストを行うための優れた代替手段として、Apidogを使用できることを言及する価値があります。Apidogは、API設計、デバッグ、自動テスト、ドキュメントなどの機能を提供する包括的なAPI開発プラットフォームです。

gpt4free干渉APIを使用する際、Apidogは次のことを支援できます:

  1. APIエンドポイントにリクエストを送信する
  2. さまざまなパラメータ構成をテストする
  3. 応答データを視覚化する
  4. 将来の使用のためにAPIリクエストのコレクションを作成して保存する
ボタン

GPT4Freeのインストール方法

前提条件

  • Python 3.10以上(推奨)
  • Google Chrome(webdriverを持つプロバイダーに必要)

GPT4Freeのインストール方法

方法1:PyPIを使用する

すべての機能を備えた完全なインストールの場合:

pip install -U g4f[all]

部分的なインストールの場合:

# OpenAI Chatプロバイダー用
pip install -U g4f[openai]

# 干渉API用
pip install -U g4f[api]

# Webインターフェース用
pip install -U g4f[gui]

# 画像生成用
pip install -U g4f[image]

# webdriverを持つプロバイダー用
pip install -U g4f[webdriver]

# プロキシサポート用
pip install -U aiohttp_socks

方法2:GitHubリポジトリから

# リポジトリをクローンする
git clone https://github.com/xtekky/gpt4free.git

# プロジェクトディレクトリに移動
cd gpt4free

# 仮想環境を作成する(推奨)
python3 -m venv venv

# 仮想環境を有効にする
# Windowsの場合:
.\venv\Scripts\activate
# macOSとLinuxの場合:
source venv/bin/activate

# 最小限の要件をインストール
pip install -r requirements-min.txt

# またはすべての要件をインストール
pip install -r requirements.txt

方法3:Dockerを使用する

# Dockerイメージをプルする
docker pull hlohaus789/g4f

# コンテナを実行する
docker run -p 8080:8080 -p 1337:1337 -p 7900:7900 --shm-size="2g" hlohaus789/g4f:latest

スリムバージョン(x64およびarm64の両方と互換性があります)用:

# 必要なディレクトリを作成
mkdir -p ${PWD}/har_and_cookies ${PWD}/generated_images
chown -R 1000:1000 ${PWD}/har_and_cookies ${PWD}/generated_images

# スリムDockerイメージを実行
docker run \
  -p 1337:1337 \
  -v ${PWD}/har_and_cookies:/app/har_and_cookies \
  -v ${PWD}/generated_images:/app/generated_images \
  hlohaus789/g4f:latest-slim \
  /bin/sh -c 'rm -rf /app/g4f && pip install -U g4f[slim] && python -m g4f --debug'

GPT4FreeをPythonの基本で使用する方法

ChatCompletionを使用したテキスト生成

シンプルな例

import g4f

# デバッグログを有効にする(オプション)
g4f.debug.logging = True

# 自動バージョンチェックを無効にする(オプション)
g4f.debug.version_check = False

# 通常(ストリーミングなし)応答
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "こんにちは、今日はどうですか?"}]
)
print(response)

ストリーミング応答

import g4f

# 応答をストリーミングする
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "ロボットについての短い物語を書いてください。"}],
    stream=True
)

for message in response:
    print(message, end='', flush=True)

特定のプロバイダーを使用する

import g4f

# 使用可能な動作中のプロバイダーをすべてリストする
providers = [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working]
print("使用可能なプロバイダー:", providers)

# 特定のプロバイダーを使用する
response = g4f.ChatCompletion.create(
    model="gpt-3.5-turbo",
    provider=g4f.Provider.Aichat,
    messages=[{"role": "user", "content": "量子コンピューティングを簡単に説明してください。"}]
)
print(response)

クライアントAPIの使用

クライアントAPIを使用したより現代的なアプローチ:

from g4f.client import Client

# クライアントインスタンスを作成
client = Client()

# チャット完了を使用してテキストを生成する
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "こんにちは"}],
    web_search=False
)
print(response.choices[0].message.content)

画像生成

from g4f.client import Client

# クライアントインスタンスを作成
client = Client()

# 画像を生成する
response = client.images.generate(
    model="flux",
    prompt="白いシャム猫",
    response_format="url"
)
print(f"生成された画像のURL: {response.data[0].url}")

プロバイダーの認証

一部のプロバイダーは、認証にクッキーまたはアクセストークンを必要とします:

from g4f import set_cookies

# Bingのクッキーを設定
set_cookies(".bing", {"_U": "クッキーの値"})

# OpenAI Chatのアクセストークンを設定
set_cookies("chat.openai.com", {"access_token": "トークンの値"})

ブラウザの自動化を使用する

ブラウザでの操作が必要なプロバイダーの場合:

import g4f
from undetected_chromedriver import Chrome, ChromeOptions

# Chromeオプションを設定
options = ChromeOptions()
options.add_argument("--incognito")

# Chrome WebDriverを初期化
webdriver = Chrome(options=options, headless=True)

try:
    # 複数のリクエストにブラウザを使用
    for idx in range(5):
        response = g4f.ChatCompletion.create(
            model=g4f.models.default,
            provider=g4f.Provider.MyShell,
            messages=[{"role": "user", "content": f"モバイルアプリのアイデアを#{idx+1}ください。"}],
            webdriver=webdriver
        )
        print(f"アイデア{idx+1}:", response)
finally:
    # 終了時には必ずWebDriverを閉じる
    webdriver.quit()

非同期サポート

複数のリクエストでのパフォーマンス向上のため:

import g4f
import asyncio

# 使用するプロバイダーを定義
providers = [
    g4f.Provider.Aichat,
    g4f.Provider.ChatBase,
    g4f.Provider.Bing,
    g4f.Provider.GptGo
]

async def run_provider(provider):
    try:
        response = await g4f.ChatCompletion.create_async(
            model=g4f.models.default,
            messages=[{"role": "user", "content": "あなたの名前は何ですか?"}],
            provider=provider,
        )
        print(f"{provider.__name__}:", response)
    except Exception as e:
        print(f"{provider.__name__}:", e)

async def run_all():
    calls = [run_provider(provider) for provider in providers]
    await asyncio.gather(*calls)

# すべてのプロバイダーを非同期で実行
asyncio.run(run_all())

プロキシとタイムアウトサポート

ネットワーク制約に対処するため:

import g4f

# 特定のプロキシと延長タイムアウトを使用
response = g4f.ChatCompletion.create(
    model=g4f.models.default,
    messages=[{"role": "user", "content": "Pythonコードを改善する方法は?"}],
    proxy="http://host:port",  # またはsocks5://user:pass@host:port
    timeout=120  # 秒単位
)
print("結果:", response)

また、環境変数を介してグローバルプロキシを設定することもできます:

export G4F_PROXY="http://host:port"

GPT4FreeでWebインターフェースを実行する

GPT4Freeは、より簡単に相互作用するためのWebインターフェースを含んでいます:

from g4f.gui import run_gui
run_gui()

または、コマンドラインを使用:

# Flaskサーバーを起動
python -m g4f.cli gui --port 8080 --debug

# またはFastAPIサーバーを起動
python -m g4f --port 8080 --debug

Webインターフェースは http://localhost:8080/chat/ で利用可能になります。

GPT4Freeで干渉APIを使用する

GPT4Freeは、他のツールと統合するためにOpenAI互換のAPIを提供します:

# APIサーバーを実行
from g4f.api import run_api
run_api()

またはコマンドライン経由で:

g4f-api
# または
python -m g4f.api.run

その後、OpenAI Pythonクライアントを使用して接続します:

from openai import OpenAI

client = OpenAI(
    # オプション:埋め込み用のHugging Faceトークンを設定
    api_key="YOUR_HUGGING_FACE_TOKEN",
    base_url="http://localhost:1337/v1"
)

# 公式OpenAIクライアントのように使用する
chat_completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "木についての詩を書いてください"}],
    stream=True,
)

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

GPT4Freeがサポートしているモデルとプロバイダー

GPT4Freeは、さまざまな機能を持つ多数のプロバイダーをサポートしています。いくつかのプロバイダーはGPT-4をサポートし、他はGPT-3.5をサポートし、いくつかは代替モデルをサポートしています。

GPT-4プロバイダー

  • Bing (g4f.Provider.Bing)
  • GeekGpt (g4f.Provider.GeekGpt)
  • GptChatly (g4f.Provider.GptChatly)
  • Liaobots (g4f.Provider.Liaobots)
  • Raycast (g4f.Provider.Raycast)

GPT-3.5プロバイダー

  • AItianhu (g4f.Provider.AItianhu)
  • AItianhuSpace (g4f.Provider.AItianhuSpace)
  • AiAsk (g4f.Provider.AiAsk)
  • Aichat (g4f.Provider.Aichat)
  • ChatBase (g4f.Provider.ChatBase)
  • ChatForAi (g4f.Provider.ChatForAi)
  • ChatgptAi (g4f.Provider.ChatgptAi)
  • その他多数...

その他のモデル

  • Bard (GoogleのPalm)
  • DeepInfra
  • HuggingChat
  • Llama2
  • OpenAssistant

結論

gpt4free Pythonライブラリは、さまざまな言語モデルにアクセスするための印象的な機能を提供し、多くのケースで公式APIキーを必要としません。複数のプロバイダーに対する統一インターフェースを提供することで、開発者がさまざまな言語モデルを試し、そのパフォーマンスを比較することを可能にします。

このライブラリは主に概念実証であり、商用利用には法的影響がある可能性がありますが、AIの能力について学び、小規模なプロジェクトをテストし、さまざまな言語モデルの仕組みを理解するための貴重なツールです。

このライブラリを責任を持って使用し、プロバイダーのサービス利用規約を尊重し、AI使用に関する倫理的考慮を意識することを忘れないでください。本番用途では、適切な認証とライセンスを持つ公式APIの使用を強く推奨します。

このライブラリは積極的に開発中なので、最新の機能、プロバイダー、ベストプラクティスについてはGitHubリポジトリとドキュメントを確認してください。AIの分野は急速に進化し続けており、gpt4freeのようなツールは最先端の技術へのアクセスを民主化し、より多くの開発者がこれらの強力なモデルを実験し、学ぶことを可能にします。