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

news2025/4/16 13:57:18

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM+uniapp的购药小程序+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;用户管理、商家管理、药品管理、药品信息管理、发票管理、订单管理、收藏管理、购物车、充值、下单等技术选型&#xff1a;SSM&#xff0c;Vue&#xff08;后端管理web&#xff09;&#xff0c;uniapp等测…

YOLO11网络结构以及改进1

YOLO11 1.YOLO11网络结构图在哪里&#xff1f;2.对应的网络结构图3.每一个模块详解3.1 Conv模块3.2关于卷积模块3.3 关于给各个模块指定参数的细节 4.加入CBAM 1.YOLO11网络结构图在哪里&#xff1f; 2.对应的网络结构图 3.每一个模块详解 3.1 Conv模块 位置&#xff1a;ultr…

AI 编程私有化部署,在使用 cline 时,可能无法避免私隐的泄漏问题

摘录&#xff1a;Cline Privacy Policy https://github.com/cline/cline/blob/main/docs/PRIVACY.md Key Points Cline operates entirely client-side as a VS Code extensionNo code or data is collected, stored, or transmitted to Clines servers 问题是&#xff1a…

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换&#xff0c;就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点&#xff1f;&#xff08;才能做点对应关系RANSAC&#xff09; &#xff1a;特征检测 我们希望找到的点具有的特征有什么特…

数据结构:Map Set(一)

目录 一、搜索树 1、概念 2、查找 3、插入 4、删除 二、搜索 1、概念及场景 2、模型 &#xff08;1&#xff09;纯key模型 &#xff08;2&#xff09;Key-Value模型 三、Map的使用 1、什么是Map&#xff1f; 2、Map的常用方法 &#xff08;1&#xff09;V put(K …

关闭浏览器安全dns解决访问速度慢的问题

谷歌浏览器加载速度突然变慢了&#xff1f;检查安全DNS功能(DoH)是否被默认开启。 谷歌浏览器在去年已经推出安全DNS功能(即DoH) , 启用此功能后可以通过加密的DNS增强网络连接安全性。例如查询请求被加密后网络运营商将无法嗅探用户访问的地址&#xff0c;因此对于增强用户的…

C语言-章节 4:函数的定义与声明 ——「神秘法术的卷轴」

少年和 Inta 成功通过运算符与表达式的考验后&#xff0c;继续在函数城堡中探索。他们沿着一条闪烁着幽光的走廊前行&#xff0c;走廊两侧的墙壁上刻满了奇异的符号&#xff0c;仿佛在诉说着古老的编程秘密。终于&#xff0c;他们来到了一间神秘的房间&#xff0c;房间中央悬浮…

47.实验室管理系统(基于SSM和html的Java项目)

目录 1.系统的受众说明 2.系统可行性分析 2.1 经济可行性 2.2 技术可行性 2.2.1 Java Web技术 2.2.2 Eclipse 2.2.3 Tomcat 2.2.4 数据库 2.2.5 Layui框架 2.2.6 SSM框架 3.系统需求分析 3.1 用户需求分析 3.2 功能需求分析 3.3 其他需求分析 4.系统设计 4.1 系…

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…

【人工智能】通过python练习机器学习中的8大算法

python一系列练习在前面几节中基本练习了一遍&#xff0c;本篇通过机器学习的算法加强python的训练。我印象中常用的几种算法有&#xff1a;线性回归、逻辑回归&#xff0c;决策树&#xff0c;向量机SVM&#xff0c;KNN-近邻&#xff0c;朴素贝叶斯&#xff0c;K-means&#xf…

Android Studio2024版本安装环境SDK、Gradle配置

一、软件版本&#xff0c;安装包附上 &#x1f449;android-studio-2024.1.2.12-windows.exe&#x1f448; &#x1f449;百度网盘Android Studio安装包&#x1f448; &#xff08;若下载连链接失效可去百度网盘链接下载&#xff09; 二、软件安装过程 ​ ​ ​ 三、准备运行…

RabbitMQ学习—day2—安装

目录 普通Linux安装 安装RabbitMQ 1、下载 2、安装 3. Web管理界面及授权操作 Docker 安装 强力推荐学docker&#xff0c;使用docker安装 普通Linux安装 安装RabbitMQ 1、下载 官网下载地址&#xff1a;https://www.rabbitmq.com/download.html(opens new window) 这…

Jenkins 新建配置Pipeline任务 三

Jenkins 新建配置Pipeline任务 三 一. 登录 Jenkins 网页输入 http://localhost:8080 输入账号、密码登录 一个没有创建任务的空 Jenkins 二. 创建 任务 图 NewItem 界面左上角 New Item 图NewItemSelect 1.Enter an item name&#xff1a;输入任务名 2.Select an ite…

社区版IDEA中配置TomCat(详细版)

文章目录 1、下载Smart TomCat2、配置TomCat3、运行代码 1、下载Smart TomCat 由于小编的是社区版&#xff0c;没有自带的tomcat server&#xff0c;所以在设置的插件里面搜索&#xff0c;安装第一个&#xff08;注意&#xff1a;安装时一定要关闭外网&#xff0c;小编因为这个…

MATLAB 生成脉冲序列 pulstran函数使用详解

MATLAB 生成脉冲序列 pulstran函数使用详解 目录 前言 一、参数说明 二、示例一 三、示例二 总结 前言 MATLAB中的pulstran函数用于生成脉冲序列&#xff0c;支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加&#xff0c;生成脉冲序列&#xff0c;适用于信号处理和系统…

概率论、组合数学知识点汇总

1、概率论知识点 全概率公式&#xff1a;如果事件B1,B2,…,Bn是样本空间的一个划分&#xff0c;则&#xff1a;贝叶斯定理&#xff1a;协方差&#xff1a;协方差用来衡量两个变量之间的变化趋势是否一致&#xff0c;公式为相关系数&#xff08;Pearson&#xff09;&#xff1a…

【人工智能】deepseek R1模型在蓝耘智算平台的搭建与机器学习的探索

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 蓝耘智算平台 deepseek R1简介与优点蓝耘智算平台蓝耘智算平台简介蓝耘智算平台优势deepseek R1模型在蓝耘智算平台的搭建模型使用与机器学习…

tomcat html乱码

web tomcat html中文乱码 将html文件改成jsp <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%>添加 <meta charset"UTF-8">

基于单片机的智能奶茶机(论文+源码+图纸)

1总体架构设计 本课题为基于单片机的智能奶茶机设计&#xff0c;其系统架构上设计如图2.1所示&#xff0c;整个系统包括了DS18B20温度传感器、继电器模块、LCD液晶、蜂鸣器、按键、STC89C52单片机等器件&#xff0c;在功能上用户可以通过按键键控制选择甜度和添加物以及设置温度…

Centos7系统安装redis

Centos7系统安装redis 下载编译配置配置环境变量服务脚本安装使用远程连接 下载 下载地址&#xff1a;https://download.redis.io/releases/&#xff0c;选择版本6.2.7 具体下载链接&#xff1a;https://download.redis.io/releases/redis-6.2.7.tar.gz 操作&#xff1a;在ro…