Files
2026-09-13 21:55:56 +00:00

275 lines
20 KiB
HTML

<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Google Analytics tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DKHZS27PHP"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "G-DKHZS27PHP");
</script>
<!-- Generated by javadoc (26) -->
<title>ChatCompletionsHttpClient (Google Agent Development Kit Maven Parent POM 1.7.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.google.adk.models.chat, class: ChatCompletionsHttpClient">
<meta name="generator" content="javadoc/ClassWriter">
<link rel="stylesheet" type="text/css" href="../../../../../resource-files/jquery-ui.min.css">
<link rel="stylesheet" type="text/css" href="../../../../../resource-files/stylesheet.css">
<script type="text/javascript" src="../../../../../script-files/script.js"></script>
<script type="text/javascript" src="../../../../../script-files/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-files/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">const pathtoroot = "../../../../../";
loadScripts();
initTheme();
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="nav-content">
<div class="nav-menu-button"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button></div>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ChatCompletionsHttpClient.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../search.html">Search</a></li>
<li><button id="theme-button" aria-label="Select Theme" title="Select Theme"></button></li>
</ul>
<div id="theme-panel">
<div>Select Theme</div>
<div><label for="theme-light"><input type="radio" id="theme-light" disabled name="theme" value="theme-light"><span>Light</span></label><label for="theme-dark"><input type="radio" id="theme-dark" disabled name="theme" value="theme-dark"><span>Dark</span></label><label for="theme-os"><input type="radio" id="theme-os" disabled name="theme" value="theme-os"><span>System Setting</span></label></div>
</div>
</div>
</div>
<div class="sub-nav">
<div class="nav-content">
<ol class="sub-nav-list">
<li><a href="package-summary.html">com.google.adk.models.chat</a></li>
<li><a href="ChatCompletionsHttpClient.html" class="current-selection">ChatCompletionsHttpClient</a></li>
</ol>
<div class="nav-list-search"><input type="text" id="search-input" disabled placeholder="Search documentation (type /)" aria-label="Search in documentation" autocomplete="off" spellcheck="false"><input type="reset" id="reset-search" disabled value="Reset"></div>
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="main-grid">
<nav role="navigation" class="toc" aria-label="Table of contents">
<div class="toc-header">Contents&nbsp;<input type="text" class="filter-input" disabled placeholder="Filter contents (type .)" aria-label="Filter table of contents" autocomplete="off" spellcheck="false"><input type="reset" class="reset-filter" disabled tabindex="-1" value="Reset">&nbsp;<button class="toc-sort-toggle" id="toc-lexical-order-toggle"><img src="../../../../../resource-files/sort-a-z.svg" alt="Sort member details in lexicographical order"></button></div>
<ol class="toc-list" tabindex="-1">
<li><a href="#" tabindex="0">Description</a></li>
<li><a href="#constructor-summary" tabindex="0">Constructor Summary</a></li>
<li><a href="#method-summary" tabindex="0">Method Summary</a></li>
<li><a href="#constructor-detail" tabindex="0">Constructor Details</a>
<ol class="toc-list">
<li><a href="#%3Cinit%3E(com.google.genai.types.HttpOptions)" tabindex="0">ChatCompletionsHttpClient(HttpOptions)</a></li>
<li><a href="#%3Cinit%3E(com.google.genai.types.HttpOptions,java.util.concurrent.ExecutorService)" tabindex="0">ChatCompletionsHttpClient(HttpOptions, ExecutorService)</a></li>
</ol>
</li>
<li><a href="#method-detail" tabindex="0">Method Details</a>
<ol class="toc-list">
<li><a href="#complete(com.google.adk.models.LlmRequest,boolean)" tabindex="0">complete(LlmRequest, boolean)</a></li>
</ol>
</li>
</ol>
<button class="hide-sidebar"><span>Hide sidebar&nbsp;</span><img src="../../../../../resource-files/left.svg" alt="Hide sidebar"></button><button class="show-sidebar"><img src="../../../../../resource-files/right.svg" alt="Show sidebar"><span>&nbsp;Show sidebar</span></button></nav>
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<h1 title="Class ChatCompletionsHttpClient" class="title">Class ChatCompletionsHttpClient</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">com.google.adk.models.chat.ChatCompletionsHttpClient</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ChatCompletionsClient.html" title="interface in com.google.adk.models.chat">ChatCompletionsClient</a></code></dd>
</dl>
<hr>
<div class="horizontal-scroll">
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ChatCompletionsHttpClient</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class in java.lang" class="external-link">Object</a>
implements <a href="ChatCompletionsClient.html" title="interface in com.google.adk.models.chat">ChatCompletionsClient</a></span></div>
<div class="block">An OkHttp-based implementation of <a href="ChatCompletionsClient.html" title="interface in com.google.adk.models.chat"><code>ChatCompletionsClient</code></a> that targets OpenAI-compatible
chat completions endpoints. Both non-streaming responses (single <a href="../LlmResponse.html" title="class in com.google.adk.models"><code>LlmResponse</code></a> emission)
and streaming Server-Sent Events (SSE) responses (multiple incremental <a href="../LlmResponse.html" title="class in com.google.adk.models"><code>LlmResponse</code></a>
emissions) are supported.</div>
</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(com.google.genai.types.HttpOptions)" class="member-name-link">ChatCompletionsHttpClient</a><wbr>(com.google.genai.types.HttpOptions&nbsp;httpOptions)</code></div>
<div class="col-last even-row-color">
<div class="block">Constructs a new <a href="ChatCompletionsHttpClient.html" title="class in com.google.adk.models.chat"><code>ChatCompletionsHttpClient</code></a> that facilitates API interaction with the
standard <code>/chat/completions</code> REST endpoint.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(com.google.genai.types.HttpOptions,java.util.concurrent.ExecutorService)" class="member-name-link">ChatCompletionsHttpClient</a><wbr>(com.google.genai.types.HttpOptions&nbsp;httpOptions,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutorService.html" title="interface in java.util.concurrent" class="external-link">ExecutorService</a>&nbsp;httpExecutorService)</code></div>
<div class="col-last odd-row-color">
<div class="block">Constructs a <a href="ChatCompletionsHttpClient.html" title="class in com.google.adk.models.chat"><code>ChatCompletionsHttpClient</code></a> whose HTTP dispatcher runs on <code>
httpExecutorService</code>.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>io.reactivex.rxjava3.core.Flowable<wbr>&lt;<a href="../LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#complete(com.google.adk.models.LlmRequest,boolean)" class="member-name-link">complete</a><wbr>(<a href="../LlmRequest.html" title="class in com.google.adk.models">LlmRequest</a>&nbsp;llmRequest,
boolean&nbsp;stream)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Generates a conversational response from the chat completions endpoint based on the provided
messages.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#method-summary" title="class in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="clone()" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="equals(Object)" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="finalize()" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="getClass()" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="hashCode()" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="notify()" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="notifyAll()" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="toString()" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="wait()" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="wait(long)" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="wait(long, int)" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(com.google.genai.types.HttpOptions)">
<h3>ChatCompletionsHttpClient</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ChatCompletionsHttpClient</span><wbr><span class="parameters">(com.google.genai.types.HttpOptions&nbsp;httpOptions)</span></div>
<div class="block">Constructs a new <a href="ChatCompletionsHttpClient.html" title="class in com.google.adk.models.chat"><code>ChatCompletionsHttpClient</code></a> that facilitates API interaction with the
standard <code>/chat/completions</code> REST endpoint.
<p>All configuration is sourced from the supplied <code>HttpOptions</code>:
<ul>
<li><code>HttpOptions.baseUrl()</code> -- <b>required</b>. The base URL of the chat completions
endpoint. The <code>chat/completions</code> path segments are appended automatically using
<code>HttpUrl</code>, which handles trailing slashes and percent-encoding deterministically.
Set via <code>HttpOptions.builder().baseUrl("https://...").build()</code>.
<li><code>HttpOptions.headers()</code> -- optional. Extra HTTP headers to include in outgoing
requests. The <code>Content-Type</code> header is set automatically and cannot be overridden.
Set via <code>HttpOptions.builder().headers(Map.of("Authorization", "Bearer ...")) </code>.
<li><code>HttpOptions.timeout()</code> -- optional. Per-call timeout in milliseconds. A missing
timeout defaults to 5 minutes (<code>DEFAULT_CALL_TIMEOUT</code>). A timeout of <code>0</code> is
respected as the explicit caller opt-in to infinite wait. Set via <code>
HttpOptions.builder().timeout(10_000).build()</code>.
</ul>
<p>Example:
<pre><code>HttpOptions options =
HttpOptions.builder()
.baseUrl("https://example.com/v1/")
.headers(ImmutableMap.of("Authorization", "Bearer my-token"))
.timeout(30_000)
.build();
ChatCompletionsHttpClient client = new ChatCompletionsHttpClient(options);
</code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>httpOptions</code> - HTTP configuration. Must not be <code>null</code>, and <code>HttpOptions.baseUrl()</code> must be present and parseable as an HTTP(S) URL.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>httpOptions.baseUrl()</code> is missing or is not a valid
HTTP(S) URL.</dd>
</dl>
</div>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(com.google.genai.types.HttpOptions,java.util.concurrent.ExecutorService)">
<h3>ChatCompletionsHttpClient</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ChatCompletionsHttpClient</span><wbr><span class="parameters">(com.google.genai.types.HttpOptions&nbsp;httpOptions,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutorService.html" title="interface in java.util.concurrent" class="external-link">ExecutorService</a>&nbsp;httpExecutorService)</span></div>
<div class="block">Constructs a <a href="ChatCompletionsHttpClient.html" title="class in com.google.adk.models.chat"><code>ChatCompletionsHttpClient</code></a> whose HTTP dispatcher runs on <code>
httpExecutorService</code>. Pass <a href="../../internal/http/HttpClientFactory.html#daemonExecutor(java.lang.String)"><code>HttpClientFactory.daemonExecutor(String)</code></a> so a standalone or CLI JVM
can exit once work is done, or a container-managed executor in a managed environment.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>httpOptions</code> - HTTP configuration; see <a href="#%3Cinit%3E(com.google.genai.types.HttpOptions)"><code>ChatCompletionsHttpClient(HttpOptions)</code></a>.</dd>
<dd><code>httpExecutorService</code> - executor for the HTTP dispatcher threads.</dd>
</dl>
</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="complete(com.google.adk.models.LlmRequest,boolean)">
<h3>complete</h3>
<div class="horizontal-scroll">
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">io.reactivex.rxjava3.core.Flowable&lt;<a href="../LlmResponse.html" title="class in com.google.adk.models">LlmResponse</a>&gt;</span>&nbsp;<span class="element-name">complete</span><wbr><span class="parameters">(<a href="../LlmRequest.html" title="class in com.google.adk.models">LlmRequest</a>&nbsp;llmRequest,
boolean&nbsp;stream)</span></div>
<div class="block"><span class="description-from-type-label">Description copied from interface:&nbsp;<code><a href="ChatCompletionsClient.html#complete(com.google.adk.models.LlmRequest,boolean)">ChatCompletionsClient</a></code></span></div>
<div class="block">Generates a conversational response from the chat completions endpoint based on the provided
messages. This encapsulates building the payload, sending the request to the completions
endpoint, and initiating the handling of complete calls.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ChatCompletionsClient.html#complete(com.google.adk.models.LlmRequest,boolean)">complete</a></code>&nbsp;in interface&nbsp;<code><a href="ChatCompletionsClient.html" title="interface in com.google.adk.models.chat">ChatCompletionsClient</a></code></dd>
<dt>Parameters:</dt>
<dd><code>llmRequest</code> - The request containing the model, configuration, and sequence of messages.</dd>
<dd><code>stream</code> - Whether to request a streaming response.</dd>
<dt>Returns:</dt>
<dd>A <code>Flowable</code> emitting the discrete (or combined) <a href="../LlmResponse.html" title="class in com.google.adk.models"><code>LlmResponse</code></a> objects.</dd>
</dl>
</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<footer>
<hr>
<p class="legal-copy"><small>Copyright &#169; 1980. All rights reserved.</small></p>
</footer>
</main>
</div>
</body>
</html>