3.3 CHATファンクションのシグネチャ1

このファンクションは、プロンプトとより早いレスポンスが提供される生成AIサービスでチャットします。

構文

APEX_AI.CHAT (
    p_prompt            IN              CLOB,
    p_system_prompt     IN              VARCHAR2            DEFAULT NULL,
    p_service_static_id IN              VARCHAR2            DEFAULT NULL,
    p_temperature       IN              NUMBER              DEFAULT NULL,
    p_messages          IN OUT NOCOPY   t_chat_messages )
    RETURN CLOB;

パラメータ

パラメータ 説明
p_prompt ユーザー・プロンプト。
p_system_prompt (オプション)渡すシステム・プロンプト。一部の生成AIサービス(OpenAIなど)では、会話のコンテキストを設定するためのシステム・プロンプトの受渡しがサポートされています。
p_service_static_id 生成AIサービスの静的ID。指定しない場合は、アプリケーションのデフォルトのAIサービスを使用します。
p_temperature 使用する温度。温度がどのように解釈されるかは、生成AIサービスの実装によって異なります。温度が高いほど、"創造的"なレスポンスが増えます。詳細および許可される値については、生成AIプロバイダのドキュメントを参照してください。
p_messages (オプション)以前の会話からのレスポンス。プロシージャ・チャットおよびnl2sqlのレスポンスは、p_responsesに自動的に追加されます。

戻り値

指定されたプロンプトおよびタイプのレスポンス。

次の例では、構成された生成AIサービスMY_AI_SERVICEでチャットします。最初のインタラクションでは、システム・プロンプトが表示され、その後のインタラクションでは、コンテキストがパラメータp_messagesの形式で生成AIサービスに渡されます。

DECLARE
  l_messages  apex_ai.t_chat_messages;
  l_response1 clob;
  l_response2 clob;
BEGIN
  l_response1 := apex_ai.chat(
    p_prompt            => 'What is Oracle APEX',
    p_system_prompt     => 'I am an expert in Low Code Application Platforms',
    p_service_static_id => 'MY_AI_SERVICE',
    p_messages          => l_messages);
  l_response2 := apex_ai.chat(
    p_prompt            => 'What is new in 23.2',
    p_service_static_id => 'MY_AI_SERVICE',
    p_messages          => l_messages);
END;