Llama 3增强中文明白能力,并生成内网穿透API后Spring Boot请求 ...

打印 上一主题 下一主题

主题 557|帖子 557|积分 1671

大家都知道Llama3是用英文训练的,以是它的中文明白力不抱负
前面已经教大家怎样本地部署llama 3.1(原理差不多)
原版部署地址:本地部署llama 3.1生成API而且内网穿透后Spring Boot调用-CSDN博客
这期主要是将原版的模子换成中文的模子(换成其他的也都一样)
 01、部署本地环境

在window搜索“环境”



新建我这三个变量

    OLLAMA_HOST   0.0.0.0:11434
  OLLAMA_ORIGINS  *
  
  OLLAMA_MODELS  [自定义模子存的位置]
  配置好我们测试一下
键盘win+r打开cmd
 

输入上期我们配置好的模子,你的不一定是ollama run llama3.1
   ollama run llama3.1
  或
  ollama run [你的模子]
  出现对话输入就没题目接着往下走(如果没下过就等他下载下)




 02、利用 Ollama 本地部署 Llama3 中文微调版

起首我们先去Hugging Face下载我们要的模子,下载地址:
   https://huggingface.co/hfl/llama-3-chinese-8b-instruct-gguf/tree/main
   

就下载 ggml-model-q8_0.gguf就行

经过测试q8_0对家用电脑性价比最高 ,体现也比力均衡(想下载其他的玩玩,配置方式也是一样,背面配置的名字改下就行)
给他移动到环境配置中,模子安装的地方

然后右键新建一个txt文档
 

改个名字而且把背面的".txt"给删掉,酿成我如许

 用记事本打开它,输入
   FROM [你自己的模子地址]
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
  {{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
  {{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
  {{ .Response }}<|eot_id|>"""
SYSTEM """You are a helpful assistant. 你是一个乐于助人的助手。"""
PARAMETER temperature 0.2
PARAMETER num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
  

 然后在你的文件位置的地址栏中输入cmd

创建一个模子(名字自定义) 
   ollama create llama3-zh-inst -f Modelfile
   

 

然后执行命令 
   ollama serve
  

 然后打开你的postman,这里我的是Apifox都是一样的,输入我的这些测试下
   http://localhost:11434/api/generate
    {
    "model": "llama3-zh-inst",
    "prompt": "天空是什么颜色的?",
    "stream": false
  }
   

如果出现我的这个就阐明成功了

03、内网穿透更改外网可访问的API地址

起首下载花生壳客户端
下载地址:花生壳客户端官方下载 - 贝锐花生壳官网
一样获得.exe的安装文件,双击一直下一步安装完成(可以自定义安装路径)

 点击添加映射,去网页填上自己的IPV4的地址

 末了获得了映射的公网IP
 

将你的内网穿透的地址复制到欣赏器如果出现这个就成功了
 

也可以用postman测试玩一下

 04、内网穿透更改外网可访问的API地址

打开你的springboot项目

  1. public String talkToLlama(String text) throws IOException {
  2.         String url = "https://你的内网穿透地址/api/chat";//请求地址
  3.         OkHttpClient client = new OkHttpClient()
  4.                 .newBuilder()
  5.                 .connectTimeout(60, TimeUnit.SECONDS) // 设置连接超时时间
  6.                 .writeTimeout(60, TimeUnit.SECONDS) // 设置写入超时时间
  7.                 .readTimeout(60, TimeUnit.SECONDS) // 设置读取超时时间
  8.                 .build();
  9.         // 定义请求体的媒体类型为JSON
  10.         MediaType JSON = MediaType.get("application/json; charset=utf-8");
  11.         String json = "{\n" +
  12.                 ""model": "llama3-zh-inst"," +
  13.                 ""messages": [{"role": "user", "content": ""+text+""}],"+
  14.                 ""stream": "+false+"}";
  15.         RequestBody body = RequestBody.create(json, JSON);
  16.         //发送POST请求并获取响应:
  17.         Request request = new Request.Builder().url(url)
  18.                 .header("Authorization", "Bearer " + apiKey)
  19.                 .header("Content-Type", "application/json") // 显式设置Content-Type头
  20.                 .post(body) // 使用POST方法并传递请求体
  21.                 .build();
  22.         // 发送请求并获取响应
  23.         Response response = client.newCall(request).execute();
  24.         String result = response.body().string();
  25.         System.out.println(result);
  26.         JSONObject returnJsonObject = new JSONObject(result);
  27.         JSONObject messages = returnJsonObject.getJSONObject("message");
  28.         // 提取 content 的值
  29.         String content = messages.getString("content").replace("“", "").replace(""", "").replace("\r", "").replace("\n", "");
  30.         // 输出 content 的值
  31.         System.out.println("回答的: " + content);
  32.         return  content;
  33.     }
复制代码
需要使用就直接调用这个方法就行
  1. String resultText = talkToLlama("自我介绍一下");
复制代码

免责声名:

一切均严格参照ollama开源策略,没有任何侵权意图,本文章全由自己编写,如出现任何题目请联系我,我将删除。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表