DeepSeek R1本地部署 DeepSeek Api接口调用 java go版本

1、本地ollama的API接口

接着上一章所本地部署deepseek,这一章我们调用ollama api

image-20250213145757287

对应的curl:

curl --request POST \
  --url http://localhost:11434/api/generate \
  --header 'Accept: */*' \
  --header 'Accept-Encoding: gzip, deflate, br' \
  --header 'Connection: keep-alive' \
  --header 'Content-Type: application/json' \
  --header 'User-Agent: PostmanRuntime-ApipostRuntime/1.1.0' \
  --data '{"model":"deepseek-r1:7b","prompt":"你是谁","stream":false}1'

2、java版本的API调用

java版本对应的github地址

https://github.com/cativen/chat-api-java/

pom.xml

  <dependencies>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp-sse</artifactId>
            <version>3.14.9</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>logging-interceptor</artifactId>
            <version>3.14.9</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version> <!-- 请检查并使用最新版本 -->
        </dependency>
    </dependencies>

ChatRequest

public class ChatRequest {
    private String model;

    private String prompt;

    private Boolean stream;

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getPrompt() {
        return prompt;
    }

    public void setPrompt(String prompt) {
        this.prompt = prompt;
    }

    public Boolean getStream() {
        return stream;
    }

    public void setStream(Boolean stream) {
        this.stream = stream;
    }
}

ChatResponse

public class ChatResponse {

    private String model;

    private String response;

    private String created_at;

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getResponse() {
        return response;
    }

    public void setResponse(String response) {
        this.response = response;
    }

    public String getCreated_at() {
        return created_at;
    }

    public void setCreated_at(String created_at) {
        this.created_at = created_at;
    }
}

ApiTest

import com.alibaba.fastjson.JSON;
import okhttp3.*;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class ApiTest {
    public static void main(String[] args) {
        // 2. 开启 Http 客户端
        OkHttpClient client = new OkHttpClient
                .Builder()
                .connectTimeout(50, TimeUnit.SECONDS)
                .writeTimeout(50, TimeUnit.SECONDS)
                .readTimeout(50, TimeUnit.SECONDS)
                .build();

        // 构建 JSON 请求体
        ChatRequest chatRequest = new ChatRequest();
        chatRequest.setStream(false);
        chatRequest.setModel("deepseek-r1:7b");
        chatRequest.setPrompt("如何学英语");
        String jsonString = JSON.toJSONString(chatRequest);
        MediaType jsonType = MediaType.get("application/json; charset=utf-8");
        RequestBody body = RequestBody.create(jsonType,jsonString);

        // 创建 POST 请求
        Request request = new Request.Builder()
                .url("http://localhost:11434/api/generate")
                .addHeader("Content-Type", "application/json")
                .post(body)
                .build();

        // 发送同步 POST 请求
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                ChatResponse chatResponse = JSON.parseObject(response.body().string(), ChatResponse.class);
                System.out.println(chatResponse.getResponse());
            } else {
                System.err.println("Request failed: " + response.code());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

结果:

学习英语可以分为以下几个步骤:

### 1. **打牢基础**
   - **听写训练**:每天听英文歌曲、短文或视频,试着跟读并写下听到的单词和句子。
   - **背诵单词**:使用 flashcards(正反面打印)来记忆词汇。可以用 apps 或 websites 如 Anki, Quizlet 等。
   - **掌握发音**:学习英语字母表、元音和辅音的发音,区分重音符号(`'`)。多听录音,模仿发音。

### 2. **提高听力**
   - **多听音频**:每天花时间听英文新闻、 talk shows 或音乐。可以从 BBC 学习 English, Duolingo Radio 等渠道获取内容。
   - **观看电影/视频**:选择英语水平相近的电影或教学视频,尝试理解对话和解释。

### 3. **增强阅读能力**
   - **读简单文章**:从基本的 grammar 到新闻报道开始。可以使用 apps 如 ESL Kids 或 Readwise。
   - **学习语法**:通过教材或在线课程(如 Khan Academy, Duolingo)系统地学习 grammar,确保理解每个规则。

### 4. **练习口语**
   - **和外教对话**:如果可能的话,找一个会英语的伴练。如果没有,可以用 apps 或 tools 如 Tandem 进行线上配对。
   - **录播回放**:多录音并回看,找出发音、语法或语调上的错误,加以改进。

### 5. **提高写作能力**
   - **写日记或短文**:每天写几句话或一篇小文章,记录生活或想法。可以使用 apps 如 Grammarly 来检查错误。
   - **模仿优秀文章**:分析 High-Commissioner 的文章,学习句式结构和表达方式。

### 6. **参加活动**
   - **加入英语club**:与英语学习者交流,参加讨论会或比赛,提升自信心。
   - **参与写作比赛**:通过 Writing Contests 等平台提交作品,得到反馈并改进。

### 7. **保持耐心和坚持**
   - **每天练习**:英语的学习需要持续性,每天花一定时间练习听、说、读、写。
   - **设定目标**:制定短期和长期学习目标,并逐步实现,保持动力。

### 8. **利用技术工具**
   - **使用 apps 和工具**:如 Duolingo, HelloChinese, Memrise 等来辅助学习。
   - **在线课程**:如果需要系统化的学习,可以选择 online courses(如 Coursera, edX)或参加英语学校。

通过以上步骤的系统学习和不断的实践,可以逐步提高英语水平。记得保持积极心态,英语学习是一个长期的过程。

Process finished with exit code 0

3、go版本的API调用

go版本对应的github地址

https://github.com/cativen/chat-api-go

mian.go

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

type Completion struct {
	Response  string `json:"response"`
	Model     string `json:"model"`
	CreatedAt string `json:"created_at"`
}

type ChatRequest struct {
	Model  string `json:"model"`
	Prompt string `json:"prompt"`
	Stream bool   `json:"stream"`
}

func main() {
	url := "http://localhost:11434/api/generate"
	// 创建请求体结构体
	requestBody := ChatRequest{
		Model:  "deepseek-r1:7b",
		Prompt: "如何做好家里的卫生工作",
		Stream: false,
	}

	// 将结构体转换为 JSON
	payload, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Println("Error marshaling JSON:", err)
		return
	}

	// 创建请求
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// 设置请求头
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer sk-b8ebb99508964850b2b1c")

	// 发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer resp.Body.Close()

	// 读取响应
	body, _ := ioutil.ReadAll(resp.Body)
	fmt.Println(string(body))

	var completion Completion
	err = json.Unmarshal(body, &completion)
	if err != nil {
		fmt.Println("Error parsing JSON:", err)
		return
	}

	fmt.Println("Content:", completion.Response)
}

结果

做好家里的卫生工作是每个家庭成员共同努力的结果。以下是一些实用的建议和步骤,可以帮助您改善家庭卫生,创造一个干净、舒适的生活环境:

### 1. **划分责任区**
   - 家庭成员可以轮流负责不同的区域(如客厅、厨房、卧室等),明确每个人的卫生责任。
   - 这样可以让大家感受到责任感,并更容易监督和检查自己的区域是否清洁。

### 2. **保持日常清洁**
   - **每天打扫**:花几分钟时间整理桌面、书架或其他需要清洁的地方,保持整洁。
   - **每周性任务**:
     - 垃圾分类:将垃圾区的垃圾归类并丢弃到相应的垃圾桶。
     - 垃圾处理:定期清理厨房和卫生间,减少积存。
     - 环境维护:每天早晨或晚上花5-10分钟扫地,保持地面干净。

### 3. **日常清洁**
   - 地面:使用地拖或吸尘器定期清扫地板,特别是厨房、餐厅和卧室。
   - 卫生间和厨房:每天用清水擦洗台面、镜柜和下水道,定期清洁卫生间的马桶。
   - 每周一次彻底打扫:清理沙发、窗帘、床单等布艺品,拖地或用湿布擦拭墙面。

### 4. **注意细节**
   - 家里的角落、边缘、楼梯扶手等地方容易被忽视,需要特别关注。
   - 厨房和卫生间是常见的污染源,及时清理和清洁可以减少异味。
   - 使用温和的清洁剂或中性洗涤剂清洗家具表面,避免留下 streaks。

### 5. **培养良好习惯**
   - 手段关灯:养成随手关闭 lights 的习惯,减少灰尘积累。
   - 不随便丢垃圾:将垃圾分类后放入指定垃圾桶,避免长时间暴露在空气中。
   - 定期大扫除:每周进行一次彻底的打扫,清理所有区域,包括地面、墙面和家具。

### 6. **使用适当的工具**
   - 地拖:拖地时选择轻便且耐用的地拖,可以有效清洁地面。
   - 吸尘器:吸尘器可以帮助去除地毯和其他表面的灰尘。
   - 墨水:对于墙面或家具上的污渍,可以用温和的墨水擦拭。

### 7. **互相监督**
   - 家人可以轮流检查对方是否完成卫生任务,比如“检查一下厨房的桌子是否整洁”或者“看看卫生间有没有倒掉马桶里的水”。
   - 如果发现卫生状况下降,及时沟通,共同寻找原因并解决。

通过以上步骤和习惯的养成,您将逐渐改善家里的卫生状况。记住,保持卫生不仅是为了个人健康,也是为了家庭环境的整体舒适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/969106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot021校园周边美食探索及分享平台

版权声明 所有作品均为本人原创&#xff0c;提供参考学习使用&#xff0c;如需要源码数据库配套文档请移步 www.taobysj.com 搜索获取 技术实现 开发语言&#xff1a;Javavue。 框架&#xff1a;后端spingboot前端vue。 模式&#xff1a;B/S。 数据库&#xff1a;mysql。 开…

肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)

大家好&#xff01;我是凯哥&#xff0c;今天给大家分享一下云计算学习路线图。这是我按照自己最开始学习云计算的时候的学习路线&#xff0c;并且结合自己从业多年所涉及的知识精心总结的云计算的思维导图。这是凯哥精心总结的&#xff0c;花费了不少精力哦&#xff0c;希望对…

初禹笔记(IOS 应用)帮助支持页面

简介 一个 iCloud 实时同步的笔记工具&#xff0c;支持markdown 格式解析、分享 PDF文件。 方便存储各种AI生成的markdown 格式回答&#xff0c;自动保存到 iCloud 永不丢失&#xff0c;支持分享为 PDF 格式笔记。 联系方式 如果您在使用过程中有任何问题或建议&#xff0c;…

SolidWorks速成教程P3-1【零件 | 第一节】——特征成型介绍拉伸凸台/基体与设计树

零件是由特征构成的&#xff0c;所以零件学习也叫做特征学习。 特征命令&#xff0c;我们可以认为是将二维草图变成三维实体的过程&#xff0c;学习完成后我们就能画出很多东西了&#xff0c;比如画一台手机的外形&#xff0c;学完后我们一起画一个手机支架&#xff0c;来熟练…

MyBatis映射文件 <resultMap> 元素详解与示例

引言 <resultMap> 是 MyBatis 中最核心的映射配置元素&#xff0c;用于解决数据库字段与 Java 对象属性之间的复杂映射问题&#xff0c;尤其是字段名不一致、嵌套对象关联、集合映射等场景。ResultMap 的设计思想是&#xff0c;对简单的语句做到零配置&#xff0c;对于复…

在ArcGIS JS API中使用WebGL实现波纹扩散特效

在现代WebGIS开发中&#xff0c;ArcGIS JS API 是一个非常强大的工具&#xff0c;它允许开发者创建丰富的地理信息应用。结合WebGL技术&#xff0c;我们可以实现更加复杂和炫酷的可视化效果。本文将介绍如何使用ArcGIS JS API结合WebGL实现一个波纹扩散特效。 波纹扩散效果 1 概…

基于Java的图书管理网站:SpringBoot+Vue开发的图书借阅管理系统

基于Java的图书管理网站&#xff1a;SpringBootVue开发的图书借阅管理系统 引言 随着信息技术的飞速发展&#xff0c;传统的图书借阅方式已逐渐向智能化、信息化方向转变。为了提高图书管理的效率和用户的借阅体验&#xff0c;基于Java、SpringBoot和Vue开发了一套图书借阅管…

MongoDB 7 分片副本集升级方案详解(上)

#作者&#xff1a;任少近 文章目录 前言&#xff1a;Mongodb版本升级升级步骤环境1.1环境准备1.2standalone升级1.3分片、副本集升级 前言&#xff1a;Mongodb版本升级 在开始升级之前&#xff0c;请参阅 MongoDB下个版本中的兼容性变更文档&#xff0c;以确保您的应用程序和…

Lua闭包的使用以及需要注意的问题

1. 闭包的基本概念 在 Lua 中&#xff0c;闭包是一个函数值&#xff0c;它包含了函数本身以及该函数所创建时的环境。闭包允许函数访问其外部函数作用域中的变量&#xff0c;即使外部函数已经执行完毕。 2.闭包的简单使用 代码&#xff1a;在下面的代码中&#xff0c;create…

第12周:LSTM(火灾温度)

1.库以及数据的导入 1.1库的导入 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn1.2数据集的导入 data pd.read_csv("woodpine2.csv")dataTimeTem1CO 1Soot 100.00025.00.0000000.00000010.22825.…

日志结构化处理:PO对象toString日志转JSON工具

日志结构化处理&#xff1a;PO对象toString日志转JSON工具 1. 解决的问题2. 下载地址 在Java项目中&#xff0c;PO&#xff08;Plain Old Java Object&#xff09;对象遍布各个角落&#xff0c;且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象&…

QML 快捷键与Shortcut的使用

一、效果展示 二、源码分享 import QtQuick import QtQuick.Controls import Qt.labs.qmlmodels import QtQuick.Controls.Basic import QtQuick.Layouts import QtQuick.Effects import Qt.labs.platformApplicationWindow {id:rootwidth: 1000height: 730visible: truetitle…

蓝桥杯之并查集

算法思想 并查集是一种树形的数据结构&#xff0c;主要用于解决一些元素分组问题。用于处理一些不相交集合的合并以及查询问题。并查集的思想是用一个数组表示了整片森林&#xff0c;树的根节点唯一标识了一个集合&#xff0c;我们只要找到了某个元素的树根&#xff0c;就能确…

Qt多线程技术【线程池】:QRunnable 和 QThreadPool

在现代软件开发中&#xff0c;尤其是在处理大量并发任务时&#xff0c;线程池技术是一种高效的解决方案。线程池不仅能提高程序的性能&#xff0c;还能有效管理线程的生命周期&#xff0c;避免频繁的线程创建和销毁所带来的性能损失。本文将以Qt中的 QThreadPool 和 QRunnable …

链表 —— 常用技巧与操作总结详解

引言 链表作为一种动态数据结构&#xff0c;以其灵活的内存管理和高效的插入删除操作&#xff0c;在算法与工程实践中占据重要地位。然而&#xff0c;链表的指针操作复杂&#xff0c;容易引发内存泄漏和野指针问题。本文博主将从基础操作到高阶技巧&#xff0c;系统化解析链表的…

Renesas RH850 FDL库介绍

文章目录 FDL库(Data Flash Library)简介FDL库的核心功能FDL库的使用步骤关键注意事项示例应用场景总结FDL库(Data Flash Library)简介 FDL(Data Flash Library)是Renesas为RH850系列微控制器提供的数据闪存(Data Flash)操作库,用于简化数据闪存的擦除、写入、读取等…

Linux 配置 MySQL 定时自动备份到另一台服务器

Linux 配置 MySQL 定时自动备份到另一台服务器 前言1、配置服务器通信1.1&#xff1a;配置过程 2、编写自动备份sh脚本文件3&#xff1a;设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件&#xff0c;然后将文件同步到另一…

用php tp6对接钉钉审批流的 table 表格 明细控件 旧版sdk

核心代码 foreach ($flows[product_list] as $k>$gift) {$items_list[] [[name > 商品名称, value > $gift[product_name] ?? ],[name > 规格, value > $gift[product_name] ?? ],[name > 数量, value > $gift[quantity] ?? ],[name > 单位, v…

RV1126解码(1)

比如我们现在要拉一个流&#xff0c; 拉一个rtmp或者拉一个rtsp的流&#xff0c;让它显示到显示屏上面去&#xff0c;此时就要用到我们这个解码模块了&#xff0c;把它个解出来并且发到其他模块去。 主要功能是通过FFMPEG的API读取每一帧的音视频数据&#xff0c;并通过RV1126的…

sql:时间盲注和boolen盲注

关于时间盲注&#xff0c;boolen盲注的后面几个获取表、列、具体数据的函数补全 时间盲注方法 import time import requests# 获取数据库名 def inject_database(url):dataname for i in range(1, 20):low 32high 128mid (low high) // 2while low < high:payload &q…