当前位置: 首页 > news >正文

TechGPT3部署

环境配置与TechGPT2配置相同:TechGPT2部署-CSDN博客。

模型下载步骤如下。

sudo apt update
sudo apt install git-lfs -y
git lfs install

学术加速并克隆模型代码库。

source /etc/network_turbo

git clone https://github.com/neukg/TechGPT-3.0.git

禁用 smudge,防止 clone 过程中拉大文件

GIT_LFS_SKIP_SMUDGE=1 git clone https://www.wisemodel.cn/neukg/TechGPT-3.0-Qwen3.git
cd TechGPT-3.0-Qwen3

手动执行拉取(可以重复执行,支持断点续传)

git lfs pull --include="model-*.safetensors"

git lfs pull

 运行代码。

import json
import torch
import uvicorn
import threading
import time
from fastapi import FastAPI, Request
from transformers import AutoModelForCausalLM, AutoTokenizer
import requestsapp = FastAPI()# ✅ 模型路径(请替换为你自己的模型路径)
model_name = "/root/autodl-tmp/TechGPT-3.0-Qwen3"
device = "cuda"print("🔄 加载模型中...")
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
print("✅ 模型加载完成")@app.post("/question_answer")
async def create_item(request: Request):json_post_raw = await request.json()json_post_list = json.loads(json.dumps(json_post_raw))prompt = json_post_list.get('prompt')history = json_post_list.get('history') or []if prompt is None:return {"response": "Prompt不能为空", "history": []}system_prompt = [{"role": "system", "content": "You are a helpful assistant."}]current_prompt = [{"role": "user", "content": prompt}]messages = system_prompt + history + current_promptmessages = [m for m in messages if m.get("content") is not None]try:text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True,enable_thinking=True,)except Exception as e:return {"response": f"Chat模板渲染错误: {str(e)}", "history": history}model_inputs = tokenizer([text], return_tensors="pt").to(device)# ✅ 使用思考模式推荐参数进行生成generated_ids = model.generate(**model_inputs,temperature=0.6,top_p=0.95,top_k=20,min_p=0,max_new_tokens=4096,do_sample=True  # 禁止贪婪解码)generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]response_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]history = history + current_prompthistory.append({"role": "assistant", "content": response_text})print("📤 Chat response:", response_text)return {"response": response_text, "history": history}def call_api():time.sleep(5)  # 等待服务器启动print("🚀 开始测试调用 API...")# ✅ 测试用 API 地址(请替换为实际端口)url = "http://localhost:your_port/question_answer"payload = {"prompt": "市政府决定从2025年7月起,全面推行垃圾分类制度。请将上述通告扩展为一则正式完整的新闻通稿,内容包括背景、措施与意义。","history": []}response = requests.post(url, json=payload)if response.status_code == 200:result = response.json()print("✅ 模型回答:", result["response"])else:print("❌ 调用失败:", response.text)if __name__ == '__main__':# ✅ 启动服务器线程(请替换为你的端口号)server_thread = threading.Thread(target=lambda: uvicorn.run(app, host="0.0.0.0", port=your_port, log_level="error"),daemon=True)server_thread.start()# 启动客户端调用call_api()

http://www.lryc.cn/news/598059.html

相关文章:

  • 初识opencv03——图像预处理2
  • 中国西北典型绿洲区土壤水分特征(2018-2019年)
  • 前端面试专栏-前沿技术:30.跨端开发技术(React Native、Flutter)
  • LeetCode 1695.删除子数组的最大得分:滑动窗口(哈希表)
  • 智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析
  • 【Git知识】Git 常用知识集合之基础--分支系统与 Tag 标签机制
  • Leetcode 07 java
  • CodeBuddy IDE发布:编程新时代的颠覆者?
  • Golang实现 - 实现只有表头的 Excel 模板,并在指定列添加了下拉框功能。生成的 Excel 文件在打开时,指定列的单元格会显示下拉选项
  • 安全逆向工程学习路线
  • Java学习第七十一部分——Dubbo
  • RCLAMP0512TQTCT 升特半导体 TVS二极管 12通道全防护芯片 以太网/PLC控制/5G基站专用
  • 数学基础弱能学好大数据技术吗?
  • 仓库解读 - OpenExo
  • 滑动窗口-5
  • 企业安全基石:解锁等保测评的战略价值
  • TRUMPF TruConvert DC 1008 – 1010 TruConvert System Control 逆变器
  • 【图像理解进阶】如何进行小目标物体的检测?
  • 快乐社兑换码怎么获得,免排队,
  • LLM中典型的Transformer层中:MLP Residual; LN Agg: μ, σ; SM Agg 是什么意思
  • 模拟退火算法对Rastrigin函数的优化
  • 【第五节】列表渲染
  • Flink-1.19.0源码详解8-ExecutionGraph生成-前篇
  • 【图论】倍增与lca
  • 网络编程——聊天程序实现
  • 嵌入式通信知识串讲:从同步 / 异步传输到 UART 协议 STM32F103 硬件解析
  • 换热站可视化:藏在数字里的城市温暖密码
  • 【jupyter 使用多进程方案】
  • 数据库底层索引讲解-排序和数据结构
  • 根据字符串数组的顺序重新排序 List顺序