Open3

LiteLLMを使ったLLMサービスの呼び出し

Yuki YamadaYuki Yamada

Azure OpenAI Serviceのモデル呼び出し

LiteLLMのcompletion関数で与えるmodelパラメータの接頭辞にazure/をつけて呼び出す。

import os
from litellm import completion

azure_openai_base_url = os.getenv("AZURE_OPENAI_TEXT_BASE_URL")
azure_openai_api_key = os.getenv("AZURE_OPENAI_TEXT_API_KEY")
azure_openai_deployment_name = "gpt-4o-mini"

model = f"azure/{azure_openai_deployment_name}"

response = completion(
    model=model,
    api_base=azure_openai_base_url,
    api_key=azure_openai_api_key,
    messages=[
        {
            "content": "LiteLLMはどんなライブラリですか?",
            "role": "user",
        },
    ],
)

結果はOpenAIライクに取得できる。

import pprint

pprint.pp(dict(response))
{'id': 'chatcmpl-BiXXo4qyOaKePcpIItSsHfkuErer9',
 'created': 1749955076,
 'model': 'gpt-4o-mini-2024-07-18',
 'object': 'chat.completion',
 'system_fingerprint': 'fp_57db37749c',
 'choices': [Choices(finish_reason='stop', index=0, message=Message(content='LiteLLMは、軽量の大規模言語モデル(LLM)を構築、トレーニング、デプロイするためのライブラリです。このライブラリは、主に以下の特長を持っています。\n\n1. **軽量性**: モデルのサイズを小さく保ちながら、効率的に動作することを重視しています。これにより、リソースが限られた環境でも使用しやすくなります。\n\n2. **高い性能**: 軽量でありながら、様々な自然言語処理タスクに対して高い性能を発揮する設計がなされています。\n\n3. **簡単なインターフェイス**: ユーザーフレンドリーなAPIを提供しているため、開発者が迅速にモデルを構築・トレーニング・デプロイできるようになっています。\n\n4. **柔軟性**: ユーザーは自分のデータセットに基づいてモデルをカスタマイズすることが可能です。\n\n5. **コミュニティとサポート**: オープンソースである場合が多く、ユーザーコミュニティがサポートを提供していることも特徴です。\n\nこのような特長により、LiteLLMは特定のアプリケーションや環境において、軽量かつ効率的に動作する大規模言語モデルを提供するための有用なツールです。', role='assistant', tool_calls=None, function_call=None, provider_specific_fields={'refusal': None}, annotations=[]))],
 'usage': Usage(completion_tokens=346, prompt_tokens=19, total_tokens=365, completion_tokens_details=CompletionTokensDetailsWrapper(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0, text_tokens=None), prompt_tokens_details=PromptTokensDetailsWrapper(audio_tokens=0, cached_tokens=0, text_tokens=None, image_tokens=None)),
 'service_tier': None,
 'prompt_filter_results': [{'prompt_index': 0,
                            'content_filter_results': {'hate': {'filtered': False,
                                                                'severity': 'safe'},
                                                       'jailbreak': {'filtered': False,
                                                                     'detected': False},
                                                       'self_harm': {'filtered': False,
                                                                     'severity': 'safe'},
                                                       'sexual': {'filtered': False,
                                                                  'severity': 'safe'},
                                                       'violence': {'filtered': False,
                                                                    'severity': 'safe'}}}]}
Yuki YamadaYuki Yamada

AWS Bedrockのモデル呼び出し

AWSのBedrockモデルを呼び出すにはまず依存関係にboto3を追加する必要がある。

uv add boto3