HTTPまたはHTTP/SSLでのOpenAI Python SDKクライアントの使用

OpenAI Pythonクライアントは、HTTPまたはHTTP/SSLを使用する場合、コンテナと連携して動作します。HTTP/SSLを使用する場合は、正しいHTTPエンドポイントを有効なAPIキーとともに指定するだけです。

OpenAI Pythonクライアントには、Python 3.8以降が必要です。

  1. uvまたは同等のPythonバージョン・マネージャを使用して、Python 3.12をインストールします。
    cd ~
    
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    uv
    
    cd ~
    
    uv venv --python 3.12
    
    source .venv/bin/activate
    
    python -V
    
    mkdir /home/opc/python
    cd /home/opc/python
  2. OpenAI Pythonクライアントをインストールします。
    uv pip install openai
  3. HTTPを使用して使用可能な埋込みモデルをリストするPythonプログラムを作成できるようになりました。API_KEY値はHTTPではチェックされませんが、API_KEYパラメータは引き続き必要です。
    from openai import OpenAI
      
    my_url = "http://localhost:8080/v1"
    my_key = "Any string will do"
    
    client = OpenAI(base_url=my_url, api_key=my_key)
    
    models = client.models.list()
    for model in models:
       print(f"- {model.id}, {model.modelSize}, {model.modelCapabilities}")

    また、HTTPを使用してベクトルを作成するPythonプログラムを作成することもできます。

    from openai import OpenAI
      
    my_endpoint = "http://localhost:8080/v1"
    my_api_key  = "Any string will do"
    my_sentence = "Just some sample text."
    my_model    = "clip-vit-base-patch32-txt"
    
    client = OpenAI(base_url=my_endpoint, api_key=my_api_key)
    
    embeddings = client.embeddings.create(model=my_model,input=my_sentence)
    print(embeddings.data[0].embedding)

    ノート:

    /healthおよび/metricsエンドポイントはヘルパー・エンドポイントであり、OpenAI APIの一部ではありません。
  4. HTTP/SSLを使用して埋込みモデルをリストするPythonプログラムを作成できるようになりました。

    ノート:

    次の条件が満たされている必要があることに注意してください:

    • プロトコルはHTTPSである必要があります。
    • HTTPSポートは正しい必要があります(たとえば、8443)。
    • API_KEYは、コンテナ・マシンの$SECRETS_DIR/api-keyの値と一致する必要があります。
    • 証明書は、$SECRETS_DIR/cert.pemファイルの証明書と一致する必要があります。
    • OpenAI機能では、有効なAPI_KEYおよび証明書の値を使用する必要があります。
    from openai import OpenAI
    import httpx
    
    my_url = "https://your_FQDN:8443/v1"
    my_key = "Your_API_KEY_value"
    my_cert = "/home/opc/secrets/cert.pem"
    my_string = "Just some sample text."
    
    client = OpenAI(base_url=my_url,
                    api_key=my_key,
                    http_client=httpx.Client(verify=my_cert))
    
    models = client.models.list()
    for model in models:
       print(f"- {model.id}, {model.modelSize}, {model.modelCapabilities}")

    また、HTTP/SSLを使用してベクトル埋込みを作成するPythonプログラムを作成することもできます。

    from openai import OpenAI
    import httpx
    
    my_url = "https://your_FQDN:9443/v1"
    my_key = "Your_API_KEY_value"
    my_cert = "/home/opc/secrets/cert.pem"
    my_model = "tinybert"
    my_string = "Just some sample text."
    
    client = OpenAI(base_url=my_url,
                    api_key=my_key,
                    http_client=httpx.Client(verify=my_cert))
    
    embeddings = client.embeddings.create(model=my_model,input=my_string)
    print(embeddings.data[0].embedding)