# deepseek4j简介 Source: https://javaai.pig4cloud.com/deepseek DeepSeek Java SDK - 简单易用的 DeepSeek API Java 客户端 deepseek4j 是面向 DeepSeek 推出的 Java 开发 SDK,支持 DeepSeek R1 和 V3 全系列模型。提供对话推理、函数调用、JSON结构化输出、以及基于 OpenAI 兼容 API 协议的嵌入向量生成能力。通过 Spring Boot Starter 模块,开发者可以快速为 Spring Boot 2.x/3.x 以及 Solon 等主流 Java Web 框架集成 AI 能力,提供开箱即用的配置体系、自动装配的客户端实例,以及便捷的流式响应支持。 1738929536 ## 特性 * 完整的 DeepSeek API 支持,支持返回思维链和会话账单 * 支持自定义连接参数、代理配置、超时设置、请求响应日志 * Reactor 响应式支持,简化流式返回开发 ## 许可证与致谢 本项目基于 [Apache License 2.0](LICENSE) 许可证开源。 项目设计灵感来源于 [OpenAI4J](https://github.com/ai-for-java/openai4j) 项目,在其优秀架构设计的基础上: * 扩展了 DeepSeek 特有功能 * 增强了 Reactor 响应式支持 * 提供了更完整的 Spring Boot 集成 ## 相关链接 * [PIG AI ](https://ai.pig4cloud.com) * [DeepSeek 官方文档](https://platform.deepseek.com) * [OpenAI4J 项目](https://github.com/ai-for-java/openai4j) **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 百炼 API 对接 Source: https://javaai.pig4cloud.com/deepseek/bailian * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入阿里百炼平台的 R1 模型。 ## 百炼平台配置准备 ### 1. 获取百炼平台访问凭证 1. 登录 [阿里云百炼平台控制台](https://bailian.console.aliyun.com/?apiKey=1#/api-key) 2. 在访问控制页面创建新的 API Key 并保存 1739002171 ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:deepseek-r1 ```properties theme={"system"} deepseek.base-url=https://dashscope.aliyuncs.com/compatible-mode/v1 deepseek.model=deepseek-r1 deepseek.api-key=sk-xxx ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 联网搜索 Source: https://javaai.pig4cloud.com/deepseek/bocha * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入联网搜索。 ## 为什么需要联网搜索? * 突破预训练数据的时间边界 模型可以突破预训练数据的时间边界,提供时效精准的智能问答服务。通过联网搜索,模型能够获取最新的信息和知识。 * 获取时效性极强的信息 网络搜索知识更适合于处理时效性极强的问题,能够从高质量信息来源网页获取最新资讯。 * 解决大模型同质化问题 当前大模型产品存在高度同质化的问题,技术差距并不明显,技术增长放缓。因此,大模型公司将重点转向了 AI 搜索入口,以期在这一领域实现差异化竞争。 1739089993 1739090116 ## 如何接入联网搜索? 博查是一个给AI用的世界知识搜索引擎,它可以让你的AI应用连接世界知识,获得干净、准确、高质量的搜索结果。 博查AI开放平台提供Web Search API、Semantic Reranker API等搜索服务,让你的AI应用可以通过API接口直接连接互联网,从近百亿网页和生态内容源中搜索高质量世界知识,包括新闻、图片、视频、百科、机酒、学术等。 博查底层基于多模态混合搜索与语义排序技术的新一代搜索引擎,适用于 AI Agents、AI Chatbots、AI Search 以及各类 RAG 应用的线上应用或数据冷启动。博查在数据安全、成本控制及内容合规性方面表现卓越,确保数据不出海并符合国内安全规范。 [登录博查AI开放平台,创建应用,获取API Key。](https://open.bochaai.com/api-keys) 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意配置search-api-key 为博查API Key ```properties theme={"system"} deepseek.search-api-key=XXXX ``` ## 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatSearchCompletion(prompt); } ``` ## 进阶使用 SearchRequest 是博查的搜索请求参数,可以设置搜索的时效性、摘要、返回条数、页码等。 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { SearchRequest searchRequest = SearchRequest.builder() .enable(true) .freshness(FreshnessEnums.ONE_DAY)// 一天内的数据 .summary(true) // 返回摘要 .count(10) // 返回10条 .page(1) // 第一页 .build(); return deepSeekClient.chatSearchCompletion(prompt,searchRequest); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 配置说明 Source: https://javaai.pig4cloud.com/deepseek/configuration * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 DeepSeek 提供了丰富的配置选项,可以通过 Spring Boot 的配置文件进行设置。所有配置项都以 `deepseek` 为前缀。 ## 基础配置 | 配置项 | 默认值 | 说明 | | -------------------------------- | ---------------------------------------------------------- | -------------------- | | `deepseek.base-url` | [https://api.deepseek.com/v1](https://api.deepseek.com/v1) | DeepSeek API 的基础 URL | | `deepseek.api-key` | - | API 密钥,必填项 | | `deepseek.model` | - | 使用的模型名称 | | `deepseek.default-system-prompt` | true | 是否使用默认的系统提示词,默认开启 | default-system-prompt 默认开启,一些非标R1模型,如果不加系统提示词则不进行深度推理比如 ollama /gitee 不输出思维链 ## 日志配置 | 配置项 | 默认值 | 说明 | | ------------------------ | ----- | -------- | | `deepseek.log-requests` | false | 是否记录请求日志 | | `deepseek.log-responses` | false | 是否记录响应日志 | | `deepseek.log-level` | DEBUG | 日志级别 | ## 网络配置 | 配置项 | 默认值 | 说明 | | -------------------------- | --- | --------- | | `deepseek.proxy` | - | 代理设置 | | `deepseek.connect-timeout` | - | 连接超时时间(秒) | | `deepseek.read-timeout` | - | 读取超时时间(秒) | | `deepseek.call-timeout` | - | 调用超时时间(秒) | ## 配置示例 ```yaml theme={"system"} deepseek: base-url: https://api.deepseek.com/v1 api-key: your-api-key-here model: deepseek-chat default-system-prompt: true log-requests: true log-responses: true log-level: DEBUG connect-timeout: 30 read-timeout: 30 call-timeout: 60 ``` 注意: 1. `api-key` 是必需的配置项,需要从 DeepSeek 官方获取 2. 超时时间单位为秒 3. 代理配置可以帮助在特定网络环境下访问 API 4. 建议在开发环境下开启日志配置,方便调试 **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 函数调用 Source: https://javaai.pig4cloud.com/deepseek/function * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 Function Calling 是大模型的一个强大特性,它允许模型调用预定义的函数来执行特定任务。这使得模型能够与外部系统和 API 进行交互,从而扩展其功能范围。 此功能只支持 deepseek-chat 模型 ## 基础使用示例 1739446054 ### 1. 定义工具函数 首先,需要定义工具函数的结构。推荐使用 JsonSchema 方式定义参数: ```java theme={"system"} Function WEATHER_FUNCTION = Function.builder() .name("get_current_weather") .description("Get the current weather in a given location") .parameters(JsonObjectSchema.builder() .properties(new LinkedHashMap() {{ put("location", JsonStringSchema.builder() .description("The city name") .build()); }}) .required(asList("location", "unit")) .build()) .build(); // 将 Function 转换为 Tool Tool WEATHER_TOOL = Tool.from(WEATHER_FUNCTION); ``` ### 2. 创建请求 ```java theme={"system"} String prompt = "北京天气怎么样?" ChatCompletionRequest request = ChatCompletionRequest.builder() .model(ChatCompletionModel.DEEPSEEK_CHAT) // 请注意只支持Chat模型 .addUserMessage("prompt") .tools(WEATHER_TOOL) // 添加工具函数 .build(); // 发送请求并获取响应 ChatCompletionResponse response = deepSeekClient.chatCompletion(request).execute(); // 获取工具调用信息 AssistantMessage assistantMessage = response.choices().get(0).message(); ToolCall toolCall = assistantMessage.toolCalls().get(0); // 解析函数调用参数 FunctionCall functionCall = toolCall.function(); String arguments = functionCall.arguments(); // {"location": "北京"} ``` ### 3. 处理模型响应并返回给大模型 ```java theme={"system"} // 执行函数获取结果 根据 arguments 参数的地点 查询api返回结构 Map map = Json.fromJson(arguments, Map.class);// {"location": "北京"} String weatherResult = map.get("location") + "气温 20°"; // 创建工具消息 ToolMessage toolMessage = ToolMessage.from(toolCall.id(), weatherResult); // 继续对话 ChatCompletionRequest followUpRequest = ChatCompletionRequest.builder() .model(ChatCompletionModel.DEEPSEEK_CHAT) .messages( UserMessage.from(prompt), assistantMessage, toolMessage // 添加工具消息 ) .build(); return deepSeekClient.chatFluxCompletion(followUpRequest); ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # Gitee API 对接 Source: https://javaai.pig4cloud.com/deepseek/gitee * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入 GiteeAI 的 R1 模型。 ## GiteeAI 配置准备 ### 1. 获取 GiteeAI 访问凭证 1. 登录 [GiteeAI 控制台](https://ai.gitee.com/log4j/dashboard/settings/tokens?action=new) 2. 创建新的 API 密钥并保存 ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:DeepSeek-R1 ```properties theme={"system"} deepseek.base-url=https://ai.gitee.com/v1 deepseek.model=DeepSeek-R1 deepseek.api-key=your-gitee-ai-api-key ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # JSON 模式 Source: https://javaai.pig4cloud.com/deepseek/json * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 ## 基础使用示例 deepseek4j 支持通过 JSON Schema 来格式化模型输出。这使得我们可以精确控制 AI 模型的输出格式,确保输出符合预期的 JSON 结构。 此功能只支持 deepseek-chat 模型 ### 简单示例 以下是一个简单的示例,展示如何使用 JSON 格式化输出解析考试文本: ```java theme={"system"} String systemPrompt = " The user will provide some exam text. Please parse the \"question\" and \"answer\" and output them in JSON format.\n" + " \n" + " EXAMPLE INPUT:\n" + " Which is the highest mountain in the world? Mount Everest.\n" + " \n" + " EXAMPLE JSON OUTPUT:\n" + " {\n" + " \"question\": \"Which is the highest mountain in the world?\",\n" + " \"answer\": \"Mount Everest\"\n" + " }"; String userPrompt = "Which is the longest river in the world? The Nile River."; ChatCompletionRequest request = ChatCompletionRequest.builder() .model(ChatCompletionModel.DEEPSEEK_CHAT) .addSystemMessage(systemPrompt) .addUserMessage(userPrompt) .responseFormat(ResponseFormatType.JSON_OBJECT) .build(); ChatCompletionResponse completionResponse = deepSeekClient.chatCompletion(request).execute(); ``` 预期输出: ```json theme={"system"} { "question": "Which is the longest river in the world?", "answer": "The Nile River" } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # RAG 进阶 Source: https://javaai.pig4cloud.com/deepseek/office2md * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 这是一项基于 Markdown 格式的多功能转换服务,支持将 PowerPoint、Word、Excel、图像、音频和 HTML 等文件转化为 Markdown 格式。同时,服务整合了 Gitee AI 和智谱 AI 提供的 GLM-4V 模型,以及阿里云百炼平台的 Qwen-VL-Max 模型,用于图片和 PDF 文件的高效文本识别。 ## Docker 使用说明 ### 1. 快速使用 ```bash theme={"system"} # 内置了GLM-4V-FLASH视觉模型,仅供测试使用 docker run -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/markitdown ``` ### 2. 使用 Gitee AI ```bash theme={"system"} docker run -d \ -p 8000:8000 \ -e API_KEY=gitee_ai_key \ -e MODEL=InternVL2_5-26B \ -e BASE_URL=https://ai.gitee.com/v1 \ registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/markitdown ``` ### 3. 使用阿里云百炼平台 ```bash theme={"system"} docker run -d \ -p 8000:8000 \ -e API_KEY=your_aliyun_api_key \ -e MODEL=qwen-vl-max \ -e BASE_URL=https://dashscope.aliyuncs.com/api/v1 \ registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/markitdown ``` ## 环境变量说明 服务支持以下环境变量配置: | 环境变量 | 说明 | 默认值 | | ------------- | ----------------- | ---------------------------------------------------------------------------- | | API\_KEY | AI 平台的 API 密钥 | XXXX | | BASE\_URL | AI 平台的 API 基础 URL | [https://open.bigmodel.cn/api/paas/v4](https://open.bigmodel.cn/api/paas/v4) | | MODEL | 使用的模型名称 | glm-4v-flash | | DELETE\_DELAY | 临时文件删除延迟(秒) | 300 | | PROMPT | 文本提取提示词 | 提取图片中全部的文本,不需要任何推理和总结,只需要原文 | ### 支持的模型配置 #### 智谱 AI * MODEL=glm-4v-flash * BASE\_URL=[https://open.bigmodel.cn/api/paas/v4](https://open.bigmodel.cn/api/paas/v4) #### Gitee AI * MODEL=InternVL2\_5-26B * BASE\_URL=[https://ai.gitee.com/v1](https://ai.gitee.com/v1) #### 阿里云百炼 * MODEL=qwen-vl-max * BASE\_URL=[https://dashscope.aliyuncs.com/compatible-mode/v1](https://dashscope.aliyuncs.com/compatible-mode/v1) ## API 接口 ### 1. 上传图片并提取文本 **Endpoint:** POST /upload/ **请求格式:** multipart/form-data **参数:** * file: 图片文件 **响应示例:** ```json theme={"system"} { "text": "提取的文本内容" } ``` ### 2. 文档图像矫正 **Endpoint:** POST /uvdoc/unwarp **请求格式:** multipart/form-data **参数:** * file: 需要进行展平处理的文档图片文件 **响应格式:** image/png **说明:** * 该接口用于处理弯曲变形的文档图片,返回展平后的图片 * 支持常见图片格式(PNG、JPEG等) * 返回的是展平后的PNG格式图片数据 **错误响应:** ```json theme={"system"} { "detail": "Error message" } ``` ## 源码运行 ``` git clone https://gitee.com/log4j/office2md.git cd office2md python3 -m venv venvdev source venvdev/bin/activate pip install -r requirements.txt # 启动服务 uvicorn main:app --reload ``` # 商业化选择 **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # Ollama 对接 Source: https://javaai.pig4cloud.com/deepseek/ollama * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入 Ollama 的 Deepseek-r1:14b 模型。 ## Ollama 安装部署 ### 1. 安装 Ollama 在 macOS 上安装 Ollama: ```bash theme={"system"} curl https://ollama.ai/install.sh | sh ``` 在 Linux 上安装 Ollama: ```bash theme={"system"} curl https://ollama.ai/install.sh | sh ``` 在 Windows 上安装: * 访问 [Ollama官网](https://ollama.ai/download) 下载安装包 * 运行安装程序完成安装 ### 2. 下载 Deepseek-r1:14b 模型 安装完成后,打开终端运行以下命令下载模型: ```bash theme={"system"} ollama pull deepseek-r1:14b ``` ### 3. 启动 Ollama 服务 ```bash theme={"system"} ollama serve ``` 服务默认运行在 `http://127.0.0.1:11434` ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:deepseek-r1:14b , 和上文Ollama run 参数一致 ```properties theme={"system"} deepseek.base-url=http://127.0.0.1:11434/v1 deepseek.model=deepseek-r1:14b deepseek.api-key=deepseek #不能为空,随意填 ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` ## 注意事项 1. 确保 Ollama 服务正常运行 2. 模型下载可能需要一些时间,取决于网络状况 3. 首次使用时需要等待模型加载 4. 建议使用 16GB 以上内存的机器运行 ## 常见问题 ### 1. 连接超时 检查 Ollama 服务是否正常运行: ```bash theme={"system"} curl http://127.0.0.1:11434 Ollama is running ``` ### 2. 内存不足 可以通过设置环境变量来限制模型使用的显存: ```bash theme={"system"} export OLLAMA_GPU_LAYERS=0 ``` ### 3. 模型响应速度 * 首次请求可能较慢,这是正常现象 * 后续请求会更快,因为模型已经加载到内存中 ## 参考链接 * [Ollama 官方文档](https://ollama.ai) **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 派欧 API 对接🔥 Source: https://javaai.pig4cloud.com/deepseek/ppinfra * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 目前实测派欧的R1 响应最快,并且注册赠送 5000万 的token,不用实名。 本文将介绍如何使用 deepseek4j 接入 派欧的 R1 模型。 ## 派欧 配置准备 ### 获取 派欧 访问凭证 * 1. 登录 [派欧 控制台](https://ppinfra.com/user/register?invited_by=KFWGG9) * 2. 创建新的 API 密钥并保存 1739860940 ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:deepseek/deepseek-r1/community ```properties theme={"system"} deepseek: base-url: https://api.ppinfra.com/v3/openai api-key: sk_xxx model: deepseek/deepseek-r1/community ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 常见问题 Source: https://javaai.pig4cloud.com/deepseek/qa * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 ## 依赖版本冲突问题 目前遇到最多的是 SpringBoot 兼容性问题 ### Spring Boot 兼容性问题 当使用 Spring Boot 2.4.x 以下版本时,可能会遇到 Jackson 和 OkHttp 的版本冲突问题。这是因为较低版本的 Spring Boot 依赖的这些库版本与 deepseek4j 所需版本不兼容。 #### 解决方案 请将以下依赖管理配置添加到项目根 pom.xml 文件的 dependencyManagement 节点中,以确保全局依赖版本的正确覆盖。 ```xml theme={"system"} com.squareup.okhttp3 okhttp 4.12.0 com.squareup.okhttp3 okhttp-sse 4.12.0 com.fasterxml.jackson jackson-bom 2.12.4 pom import ``` ## 中文编码问题 ### 问题描述 如果开发环境的字符编码不是 UTF-8,或在输出响应时遇到中文乱码问题,可能会出现如下情况: 中文乱码示例 ### 解决方案 在 Spring Controller 中设置响应的 Content-Type 时,需要明确指定字符编码为 UTF-8: ```java theme={"system"} @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE + ";charset=UTF-8") public Flux chat(String prompt) { // 你的业务逻辑 } ``` ## 多厂商动态切换 ### 问题描述 在某些场景下,可能需要根据不同的业务需求动态切换不同的模型厂商。例如,在某些场景下,可能需要根据不同的业务需求动态切换不同的模型厂商。 ### 解决方案 * 不再引入 deepseek-spring-boot-starter 依赖,而是引入 deepseek4j-core 依赖自行配置 DeepSeekClient ```java theme={"system"} @Bean public DeepSeekClient aliyunDeepSeekClient() { DeepSeekClient.Builder builder = DeepSeekClient.builder().baseUrl(deepSeekProperties.getBaseUrl()) .model(deepSeekProperties.getModel()).openAiApiKey(deepSeekProperties.getApiKey()) .logRequests(deepSeekProperties.isLogRequests()).logResponses(deepSeekProperties.isLogResponses()); return builder.build(); } @Bean public DeepSeekClient txDeepSeekClient() { DeepSeekClient.Builder builder = DeepSeekClient.builder().baseUrl(deepSeekProperties.getBaseUrl()) .model(deepSeekProperties.getModel()).openAiApiKey(deepSeekProperties.getApiKey()) .logRequests(deepSeekProperties.isLogRequests()).logResponses(deepSeekProperties.isLogResponses()); return builder.build(); } ``` ## API 使用量统计 ### 获取请求用量统计 Deepseek 官方 API 会在流式响应的最后返回本次请求的用量统计信息。你可以通过以下方式获取: ```java theme={"system"} return deepSeekClient.chatFluxCompletion(prompt) .doOnNext(response -> { if (Objects.nonNull(response.usage())) { // 在这里处理用量统计信息 // 可以记录到日志或数据库中 } }); ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 快速开始 Source: https://javaai.pig4cloud.com/deepseek/quickstart * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 ## Maven 依赖 在你的 `pom.xml` 中添加以下依赖: [![Maven Central](https://img.shields.io/maven-central/v/io.github.pig-mesh.ai/deepseek4j.svg?style=flat-square)](https://maven.badges.herokuapp.com/maven-central/io.github.pig-mesh.ai/deepseek4j) ```xml theme={"system"} io.github.pig-mesh.ai deepseek-spring-boot-starter 1.4.3 ``` ## 基础配置 在 `application.yml` 或 `application.properties` 中添加必要的配置: ```yaml theme={"system"} deepseek: api-key: your-api-key-here # 必填项:你的 API 密钥 model: deepseek-reasoner base-url: https://api.deepseek.com # 可选,默认为官方 API 地址 ``` ## 基础使用示例 ### 1. 流式返回示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` ### 2. 进阶配置示例 * ChatCompletionRequest 配置构造 ```java theme={"system"} @GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chatAdvanced(String prompt) { ChatCompletionRequest request = ChatCompletionRequest.builder() // 模型选择,支持 DEEPSEEK_CHAT、DEEPSEEK_REASONER 等 .model(ChatCompletionModel.DEEPSEEK_REASONER) // 添加用户消息 .addUserMessage(prompt) // 设置最大生成 token 数,默认 2048 .maxTokens(1000) // 设置响应格式,支持 JSON 结构化输出 .responseFormat(...) // 可选 // function calling .tools(...) // 可选 .build(); return deepSeekClient.chatFluxCompletion(request); } ``` * 多轮会话 ```java theme={"system"} public final static HashMap cache = new HashMap<>(); @GetMapping(value = "/chat/advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chatAdvanced(String prompt, String cacheCode) { log.info("cacheCode {}", cacheCode); ChatCompletionRequest request = ChatCompletionRequest.builder().model(deepSeekProperties.getModel()) .addUserMessage(prompt) .addAssistantMessage(elt.apply(cache.getOrDefault(cacheCode, ""))) .addSystemMessage("你是一个专业的助手").maxCompletionTokens(5000).build(); log.info("request {}", Json.toJson(request)); // 只保留上一次回答内容 cache.remove(cacheCode); return deepSeekClient.chatFluxCompletion(request).doOnNext(i -> { String content = choicesProcess.apply(i.choices()); // 其他ELT流程 cache.merge(cacheCode, content, String::concat); }).doOnError(e -> log.error("/chat/advanced error:{}", e.getMessage())); } Function, String> choicesProcess = list -> list.stream().map(e -> e.delta().content()) .collect(Collectors.joining()); Function elt = s -> s.replaceAll("[\\s\\S]*?", "").replaceAll("\n", ""); ``` ### 3. 同步输出 (非实时响应流) 不推荐使用同步阻塞调用方式,R1模型推理耗时较长易导致客户端连接超时,且响应延迟会影响用户体验 ```java theme={"system"} @GetMapping(value = "/sync/chat") public ChatCompletionResponse syncChat(String prompt) { ChatCompletionRequest request = ChatCompletionRequest.builder() // 根据渠道模型名称动态修改这个参数 .model(deepSeekProperties.getModel()) .addUserMessage(prompt).build(); return deepSeekClient.chatCompletion(request).execute(); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # RAG 知识库 Source: https://javaai.pig4cloud.com/deepseek/rag * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 ## 快速上手 本文章将带领大家从零开始构建一个基础 RAG 系统。通过白盒编码的方式,不仅能深入理解 RAG 的核心原理,还可以根据实际需求灵活调整和优化各个环节。**相比直接使用现有的开源 RAG 产品,这种方式能让我们更好地掌控系统行为,实现更精准的知识检索和问答效果。** 1739407145 ### 1. 环境准备 在开始构建 RAG 系统之前,我们需要准备以下环境: #### 1.1 Ollama 模型准备 首先安装 [Ollama](https://ollama.ai/),然后下载以下必要的模型: ```bash theme={"system"} # 下载推理模型 - 用于理解和生成回答 ollama run deepseek-r1:14b # 下载向量模型 - 用于文本向量化 ollama pull bge-m3:latest ``` #### 1.2 向量数据库准备 本文使用 Milvus 作为向量数据库,你可以选择以下两种方式之一进行安装: **方式一:使用milvus 测试环境** * 访问 Zilliz Cloud 中文版:[https://cloud.zilliz.com.cn](https://cloud.zilliz.com.cn) * 获取连接信息(后续配置需要用到) **方式二:Docker 安装** ```bash theme={"system"} # 1. 下载安装脚本 curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh # 2. 启动 Docker 容器 bash standalone_embed.sh start ``` > 注意:如果选择 Docker 安装方式,请确保你的网络环境能够正常访问 Github。 * 初始化向量数据:创建本次知识库存储、获取链接信息和表信息: 1739410521 #### 1.3 项目依赖 在你的 Maven 项目中添加以下依赖: ```xml theme={"system"} io.milvus milvus-sdk-java 2.5.3 ``` #### application.yml 配置 ```yml theme={"system"} # 推理模型链接信息 deepseek: base-url: http://127.0.0.1:11434/v1 model: deepseek-r1:14b api-key: ollama-local # 向量模型链接信息 embedding: api-key: ${deepseek.api-key} base-url: ${deepseek.base-url} model: bge-m3:latest ``` ### 2. 初始化私有知识 在构建 RAG 系统时,第一步是将已有的知识内容转换为向量形式并存储到向量数据库中。 #### 2.1 创建链接 链接客户端 ```java theme={"system"} // 1. Connect to Milvus server ConnectConfig connectConfig = ConnectConfig.builder() .uri(CLUSTER_ENDPOINT) // 1.2 获取的 Milvus 链接端点 .token(TOKEN) // 1.2 获取的 Milvus 链接信息 .build(); MilvusClientV2 milvusClientV2 = new MilvusClientV2(connectConfig); ``` #### 2.2 准备资料并向量化上传 以下示例演示如何处理文本资料。对于 Office 文档、图片、PDF、音视频等其他格式的文件处理,deepseek4j 提供了完整的解决方案,详细使用方法请参考官方文档: [https://javaai.pig4cloud.com/deepseek。](https://javaai.pig4cloud.com/deepseek。) ```java theme={"system"} @Autowired EmbeddingClient embeddingClient; { // 这里以 2025最新的我司保密条例演示,可以换成你自己的 String law = FileUtil.readString("/Users/lengleng/Downloads/law.txt", Charset.defaultCharset()); String[] lawSplits = StrUtil.split(law, 400); List data = new ArrayList<>(); for (String lawSplit : lawSplits) { List floatList = embeddingClient.embed(lawSplit); JsonObject jsonObject = new JsonObject(); // 将 List 转换为 JsonArray JsonArray jsonArray = new JsonArray(); for (Float value : floatList) { jsonArray.add(value); } jsonObject.add("vector", jsonArray); jsonObject.addProperty("text", lawSplit); data.add(jsonObject); } InsertReq insertReq = InsertReq.builder() .collectionName("deepseek4j_test") .data(data) .build(); milvusClientV2.insert(insertReq); } ``` ### 3. 创建 RAG 接口 ```java theme={"system"} @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { MilvusClientV2 milvusClientV2 = new MilvusClientV2(connectConfig); List floatList = embeddingClient.embed(prompt); SearchReq searchReq = SearchReq.builder() .collectionName("deepseek4j_test") .data(Collections.singletonList(new FloatVec(floatList))) .outputFields(Collections.singletonList("text")) .topK(3) .build(); SearchResp searchResp = milvusClientV2.search(searchReq); List resultList = new ArrayList<>(); List> searchResults = searchResp.getSearchResults(); for (List results : searchResults) { System.out.println("TopK results:"); for (SearchResp.SearchResult result : results) { resultList.add(result.getEntity().get("text").toString()); } } ChatCompletionRequest request = ChatCompletionRequest.builder() // 根据渠道模型名称动态修改这个参数 .model("deepseek-r1:14b") .addUserMessage(String.format("你要根据用户输入的问题:%s \n \n 参考如下内容: %s \n\n 整理处理最终结果", prompt, resultList)).build(); return deepSeekClient.chatFluxCompletion(request); } ``` ### 前端测试 1739410900 ## 总结 本文通过以下核心步骤快速构建了基础 RAG 系统: 1. 环境准备:部署推理模型和向量模型 2. 知识库构建:向量化存储 3. 检索增强:通过语义搜索获取关联知识 4. 推理生成:结合上下文生成最终回答 要让 RAG 系统达到生产可用水平,每个环节都需要进一步优化和完善: 1. 检索策略优化:结合关键词和语义的混合检索,提高召回准确度 2. 重排序优化:对检索结果进行二次排序,确保最相关内容排在前面 3. 提示词工程:优化 Prompt 模板,引导模型生成更准确的回答 4. 知识库管理:定期更新和维护知识库,保证数据时效性 5. 性能调优:优化向量检索和模型推理的性能 ## 商业化选择 **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # SiliconFlow API 对接 Source: https://javaai.pig4cloud.com/deepseek/siliconflow * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入硅基流动的 R1 模型。 \##硅基流动配置准备 ### 1. 获取硅基流动访问凭证 1. 登录硅基流动控制台 [https://cloud.siliconflow.cn/account/ak](https://cloud.siliconflow.cn/i/YKcJJTYP) 2. 创建新的 API 密钥并保存 1738983332 ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:deepseek-ai/DeepSeek-R1 ```yaml theme={"system"} deepseek: base-url: https://api.siliconflow.com/v1 model: deepseek-ai/DeepSeek-R1 api-key: your-api-key ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # QwQ-32B API 集成指南 Source: https://javaai.pig4cloud.com/deepseek/siliconflow-qwq * ⭐️ **请先 Star 项目后再提问**(未 Star 的问题将直接关闭) * 🐞 提交 [GitHub Issue](https://github.com/pig-mesh/deepseek4j/issues) 时请包含: * 问题截图 * SDK 版本信息 * 相关配置代码 ## 模型概述 强烈推荐使用 QwQ 替代 R1 模型,QwQ 不仅具有更快的响应速度,同时提供更高的推理准确性和更稳定的性能表现 QwQ-32B 是阿里巴巴 Qwen 团队基于 Qwen2.5 架构研发的高性能大语言模型,专为企业级推理任务设计。该模型在保持高质量输出的同时,显著提升了推理速度和资源利用效率。 ### 核心优势 * **高性能推理**:针对生产环境优化,显著降低延迟 * **强大的理解能力**:继承 Qwen2.5 架构的优秀语义理解能力 * **多场景适配**:适用于对话、内容生成、代码辅助等多种应用场景 模型架构图 ## 硅基流动平台配置 ### 1. 获取访问凭证 1. 访问硅基流动控制台:[https://cloud.siliconflow.cn/account/ak](https://cloud.siliconflow.cn/i/YKcJJTYP) 2. 登录账户并创建新的 API 密钥 3. 妥善保存生成的密钥,后续将无法再次查看 API密钥创建界面 ## deepseek4j SDK 集成 ### 1. 配置文件设置 在应用的 `application.yml` 或 `application.properties` 中添加以下配置: 注意:模型名称必须严格遵循 `Qwen/QwQ-32B` 格式,包括大小写 ```yaml theme={"system"} deepseek: base-url: https://api.siliconflow.com/v1 model: Qwen/QwQ-32B api-key: sk-xxx # 替换为你的实际 API 密钥 ``` ### 2. 代码实现示例 #### 基础对话接口 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` #### 高级参数配置 ```java theme={"system"} @GetMapping(value = "/chat-advanced", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chatAdvanced(String prompt) { ChatCompletionRequest request = ChatCompletionRequest.builder() .model("Qwen/QwQ-32B") .messages(Collections.singletonList( UserMessage.from(prompt) )) .temperature(0.7) .maxTokens(2048) .build(); return deepSeekClient.chatFluxCompletion(request); } ``` ## 应用场景与最佳实践 * **智能客服**:利用模型出色的对话能力构建自然流畅的客户服务系统 * **内容生成**:自动化内容创作,辅助营销文案、产品描述等撰写 * **代码辅助**:提供代码补全、调试和优化建议,提升开发效率 **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们持续改进! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # SSE 流式输出 Source: https://javaai.pig4cloud.com/deepseek/sse * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 1738934760 可以使用在线版本:[https://try.pig4cloud.com/sse.html](https://try.pig4cloud.com/sse.html) 项目提供了一个简单的 SSE 调试页面([sse.html](https://github.com/pig-mesh/deepseek4j/blob/v1.2.0/sse.html)),用于实时查看与 deepseek4j 后端的交互过程。页面分为三个主要区域: 1. 原始数据区:显示 SSE 连接的原始响应数据 2. 推理过程区:展示 AI 的思考链路 3. 最终答案区:显示 AI 的最终回答 ### 使用步骤 1. 双击运行项目根目录的 `sse.html` 文件 2. 在页面顶部输入框中填入后端 SSE 接口地址,例如: ``` http://localhost:8080/chat?prompt=你的问题 ``` 3. 点击"连接"按钮开始与后端交互 4. 实时观察推理过程和结果 5. 可以通过"断开"按钮终止连接,"清空"按钮清除历史记录 ### 配置跨域 在 Spring Boot 后端需要配置跨域支持 可以通过在接口类上添加 `@CrossOrigin` 注解: ```java theme={"system"} @CrossOrigin("*") @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` ### 前端集成参考 该调试页面提供了完整的前端实现代码,你可以参考以下关键部分进行项目集成: 1. SSE 连接建立: ```javascript theme={"system"} const eventSource = new EventSource(url); ``` 2. 消息处理: ```javascript theme={"system"} eventSource.onmessage = (event) => { const data = JSON.parse(event.data); // 处理数据 }; ``` 3. 错误处理: ```javascript theme={"system"} eventSource.onerror = (error) => { // 处理错误 }; ``` 完整的实现代码可以在项目根目录的 `sse.html` 文件中找到。 **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 腾讯 API 对接 Source: https://javaai.pig4cloud.com/deepseek/tencent * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入腾讯云 LKEAP 平台的 R1 模型。 ## 腾讯云 LKEAP 平台配置准备 ### 1. 获取 LKEAP 平台访问凭证 1. 登录 [腾讯云 LKEAP 控制台](https://console.cloud.tencent.com/lkeap/api) 2. 在 API 密钥管理页面创建新的 API Key 并保存 1739002726 ## deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称:deepseek-r1 ```properties theme={"system"} deepseek.base-url=https://api.lkeap.cloud.tencent.com/v1 deepseek.model=deepseek-r1 deepseek.api-key=sk-xxx ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` ``` deepseek.base-url=https://api.lkeap.cloud.tencent.com/v1 deepseek.model=deepseek-r1 deepseek.api-key=sk-6r6cz8muzIWXCYHljs9OHlSvDVtGK3yz5UphTKOn5nPdjr9V ``` [https://api.lkeap.cloud.tencent.com/v1](https://api.lkeap.cloud.tencent.com/v1) [https://console.cloud.tencent.com/lkeap/api](https://console.cloud.tencent.com/lkeap/api) **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 火山引擎 API 对接 Source: https://javaai.pig4cloud.com/deepseek/volcengine * ⭐️ **请先 Star 本项目后再提问,作者精力有限,未 Star 直接 Close** * 🐞 [GitHub ISSUE](https://github.com/pig-mesh/deepseek4j/issues) 需包含:问题截图 + SDK版本 + 配置代码 本文将介绍如何使用 deepseek4j 接入 火山引擎 的 R1 模型。 ## 参数获取 ### 1. 获取 API key 1738984582 ### 2. 获取接入模型名称 1738984901 好别扭,这一段才是模型名称 1738984964 # deepseek4j 配置 ### 1. 配置文件设置 在 `application.properties` 或 `application.yml` 中添加以下配置: 注意模型名称和上边图片创建的接入点一致 ```properties theme={"system"} deepseek.base-url=https://ark.cn-beijing.volces.com/api/v3 deepseek.model=和上图接入点一致 deepseek.api-key=your-api-key ``` ### 2. 代码示例 ```java theme={"system"} @Autowired private DeepSeekClient deepSeekClient; @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux chat(String prompt) { return deepSeekClient.chatFluxCompletion(prompt); } ``` **为Java开发者提供全栈式AI工程化解决方案**,强类型/高可维护性架构,内置30+主流大模型支持。 * **🔍 知识引擎体系**:RAG 知识引擎全自动化多模态解决方案 * **📝 AI-OCR 中枢**:复杂非标场景高精度识别 * **⚙️ 业务智能融合**:函数编排 + Chat2SQL,无缝对接现有业务系统 * **🛡️ N维风控体系**:敏感词/IP/Token/User 规则控制引擎 发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档! # 课程介绍 Source: https://javaai.pig4cloud.com/docs/00-introduction 本课程的主要目标是让Java开发者零基础入门AI,通过学习如何使用Java相关的AI框架,将大型语言模型和AI代理集成到现有系统中。我们将重点介绍如何使用LangChain4J等工具,在Java环境中构建高度定制化的AI应用程序。 2025/05/14 langchain4j 已正式发布 1.0 版本,本系列课程完全基于最新的 1.0 实战。