# java-openai > java-openai 使用文档:统一调用大模型、流式响应、多模态与语音接口 ## 检索入口 - [机器可读目录](https://java-openai.io.nexus/ai/index.json): 页面标题、章节、摘要、原文地址、内容哈希和占位状态。 - [分段语料](https://java-openai.io.nexus/ai/chunks.jsonl): 每行一个 JSON 对象,按正文标题分段,保留代码块。 - [完整正文](https://java-openai.io.nexus/llms-full.txt): 所有页面原文。优先按章节或单页获取。 - [站点地图](https://java-openai.io.nexus/sitemap.xml): HTML 页面入口。 回答时引用 url 字段;结合版本与验证范围,placeholder 表示短内容候选,不应当作完整实现。 ## overview - [本章完整正文](https://java-openai.io.nexus/ai/chapters/overview.txt) - [简介](https://java-openai.io.nexus/ai/pages/01.md): 本章节主要介绍 java-openai (GitHub: litongjava/java-openai )库的核心能力、目录结构与统一调用方式,并展示如何将第三方大模型 API(OpenAI / Google / Anthropic / OpenRouter 等)以一致的请求与响应模型接入业务系统。 java-open - [流式生成](https://java-openai.io.nexus/ai/pages/02.md): 在实际业务中,很多场景并不适合“等待完整结果一次性返回”,例如: 聊天机器人逐字输出,提升交互体验 长文本生成(写作、总结、代码生成),降低首 token 延迟 Web 前端使用 SSE / WebSocket 实时渲染内容 避免长时间阻塞请求导致的超时问题 java-openai 在统一抽象层之上,提供了 跨平台一致 - [图片多模态输入](https://java-openai.io.nexus/ai/pages/03.md): 随着多模态模型的发展,越来越多的业务场景需要直接向大模型输入图片,并结合文本指令完成任务,例如: 图片文字识别(OCR) 图片内容理解与描述 图表、试题、合同、截图等内容解析 图片 + 文本混合推理(VLM / Vision-Language Model) java-openai 在统一聊天抽象的基础上,提供了 统一的 - [Google Gemini接入](https://java-openai.io.nexus/ai/pages/04.md): toc 协议自动转换 java-openai 的统一大模型调用能力 在真实的工程环境中,对接大模型的最大挑战从来不只是“调用 API”,而是 跨平台协议差异带来的长期维护成本 : OpenAI、Google Gemini、Anthropic Claude 的请求结构完全不同 system prompt、messages - [google Vertex AI 接入](https://java-openai.io.nexus/ai/pages/05.md): toc service account 到 API Key 的转换与 java-openai 使用说明 在 Google Cloud 生态中, Vertex AI 默认更偏向使用 Service Account 进行认证 。 但在当前 java-openai 的统一调用体系里, 暂不直接支持 Service Accou - [模型查询](https://java-openai.io.nexus/ai/pages/06.md): DeepSeekClient 官方模型查询 该方法通过 EnvUtils.get("DEEPSEEK API KEY") 读取密钥,查询 DeepSeek 官方模型列表。开源仓库中的 DeepSeek-OCR 不等于官方 API 已开放同名模型。应先检查账号模型列表和官方协议;没有该模型时,不要自行猜测 OCR 端点, - [按业务档位选模型](https://java-openai.io.nexus/ai/pages/07.md): 同一套代码既要跑便宜的快速模型,又要在用户选择"更聪明"时切到更强的模型,是接入大模型时的常见需求。做法不是把模型名写死在调用处,而是让业务只表达 档位意图 (快 / 思考 / 专家),由一层映射把档位翻译成"平台 + 模型",再交给 UniChatRequest 统一发送。 这样做的收益很直接: 业务代码只出现 fa - [OpenAI、Claude 与 DeepSeek 联网搜索](https://java-openai.io.nexus/ai/pages/08.md): java-openai 通过各平台的服务端工具调用 Web Search。搜索由平台执行,客户端负责发送请求、接收回答与来源引用。三个平台的原生入口如下: | 平台 | 便捷入口 | 默认请求地址 | 搜索工具 | | --- | --- | --- | --- | | OpenAI | OpenAiResponses - [为单次生成配置独立传输策略](https://java-openai.io.nexus/ai/pages/09.md): java-openai 支持向原始响应入口传入调用方管理的 OkHttpClient 。业务可以独立设置等待时间、连接重试与跳转规则,继续复用客户端构造请求头、发送请求和返回响应的能力,不必改变公共客户端池。 如需根据 platform 自动选择服务地址与密钥,并获得统一的 UniChatResponse ,使用 Un - [GiteeClient 文档解析与图片 OCR](https://java-openai.io.nexus/ai/pages/10.md): java-openai 提供 GiteeClient ,可以提交文档解析任务、查询任务状态,也可以调用同步图片 OCR。文档模型常量存在,并不代表该模型支持所有接口。 配置 在应用配置或本地 secrets.txt 中设置 GITEE API KEY ,启动时调用 EnvUtils.load() 。读取配置使用 Env - [WhisperClient 语音识别](https://java-openai.io.nexus/ai/pages/11.md): java-openai 的 WhisperClient 将音频文件提交给 OpenAI 兼容的转写接口。本节介绍客户端调用;上传接口、缓存和存储的应用实现见 语音识别服务 。 配置与调用 在应用配置中设置 OPENAI API KEY ,需要自定义服务地址时设置 OPENAI API URL 。先调用 EnvUtils - [Perplexity API](https://java-openai.io.nexus/ai/pages/12.md): 本文档详细介绍了如何使用 Perplexity API 进行聊天完成请求,并提供了 Java 示例代码,帮助开发者快速集成该 API。 概述 Perplexity API 提供了强大的搜索 和 推理 生成能力。本文将展示如何构建请求、解析响应以及在 Java 项目中调用 Perplexity API。 请求示例 以下是 - [SupadataClient 获取视频字幕](https://java-openai.io.nexus/ai/pages/13.md): java-openai 提供 SupadataClient ,用于获取 YouTube 视频字幕。本节从 字幕问答系统 中分离客户端调用说明;数据库缓存、会话和问答流程仍在 ai agent 章节。 配置与调用 在应用配置中设置 SUPADATA API KEY ,在客户端调用前加载配置。 get(videoId) 接 - [BailianTTSClient 语音合成](https://java-openai.io.nexus/ai/pages/14.md): BailianTTSClient wraps Alibaba Cloud Bailian / DashScope text-to-speech through the /api/v1/services/audio/tts/SpeechSynthesizer endpoint. Configuration Load ap - [java-openai](https://java-openai.io.nexus/ai/pages/index.md): 本章节只介绍 java-openai 库的配置、客户端调用、请求与响应处理。应用设计见 ai agent ,文档解析效果评测见 知识库 。 文章目录 - 简介 - 流式生成 - 图片多模态输入 - Google Gemini接入 - google Vertex AI 接入 - 模型查询 - 按业务档位选模型 - Ope - [UniChatClient 与调用方 HTTP 客户端](https://java-openai.io.nexus/ai/pages/unichat-owned-client.md): UniChatClient 统一处理聊天请求和响应。同步生成支持按平台选择 Chat Completions、Gemini/Vertex AI、Anthropic Messages 或 Responses 协议,并使用调用方提供的 OkHttpClient ,按业务设置超时、重定向和重试策略,并复用连接池。 指定 pl - [UniChatClient 原始 HTTP 传输](https://java-openai.io.nexus/ai/pages/unichat-raw-transport.md): UniChatClient.execute(client, request) 接收调用方构造的 OkHttp 请求,保留协议扩展字段、请求方法和请求体,返回原始 HTTP 响应。适合需要读取状态码、响应头、二进制内容或逐块消费 SSE 的集成场景。 UniChatClient.newCall(client, reque