首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >大模型工具落地开发实战项目完整代码

大模型工具落地开发实战项目完整代码

作者头像
风骏时光少年
发布2026-06-29 12:09:56
发布2026-06-29 12:09:56
900
举报

大模型工具落地开发实战项目完整代码

一、文档概述

本文面向开发人员提供轻量化大模型工具本地部署实战方案,无需复杂分布式环境,基于Python快速封装通用大模型调用工具,实现文本问答、摘要生成、批量处理核心能力。代码可直接运行,适配本地开源大模型与API在线模型双模式,降低大模型业务落地门槛,适用于企业内部辅助工具、自动化脚本、数据分析场景。

二、环境依赖

1. 基础环境

Python 3.9+

2. 安装依赖库

代码语言:javascript
复制
pip install requests transformers torch python-dotenv

三、项目整体架构

  1. 1. 配置模块:读取密钥、模型地址、参数阈值
  2. 2. 模型调用核心类:统一封装本地/API模型调用逻辑
  3. 3. 业务工具函数:文本问答、内容摘要、批量文本处理
  4. 4. 主程序入口:命令行交互演示

四、完整实战代码

4.1 配置文件 .env

代码语言:javascript
复制
MODEL_API_KEY=sk-xxxxxx
MODEL_BASE_URL=https://xxx/v1
LOCAL_MODEL_PATH=./llm-model
MAX_TOKEN=1024
TEMPERATURE=0.7

4.2 主程序 llm_tool.py

代码语言:javascript
复制
import os
import requests
from dotenv import load_dotenv
from transformers import AutoTokenizer, AutoModelForCausalLM

# 加载环境配置
load_dotenv()

class LLMBaseTool:
    def __init__(self, use_local=False):
        self.use_local = use_local
        self.max_token = int(os.getenv("MAX_TOKEN"))
        self.temperature = float(os.getenv("TEMPERATURE"))
        if not self.use_local:
            self.api_key = os.getenv("MODEL_API_KEY")
            self.base_url = os.getenv("MODEL_BASE_URL")
            self.headers = {"Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json"}
        else:
            model_path = os.getenv("LOCAL_MODEL_PATH")
            self.tokenizer = AutoTokenizer.from_pretrained(model_path)
            self.model = AutoModelForCausalLM.from_pretrained(model_path)

    def api_chat(self, prompt: str) -> str:
        payload = {
            "messages": [{"role": "user", "content": prompt}],
            "max_tokens": self.max_token,
            "temperature": self.temperature
        }
        resp = requests.post(f"{self.base_url}/chat/completions", json=payload, headers=self.headers)
        if resp.status_code == 200:
            return resp.json()["choices"][0]["message"]["content"]
        return f"调用失败:{resp.text}"

    def local_chat(self, prompt: str) -> str:
        inputs = self.tokenizer(prompt, return_tensors="pt")
        outputs = self.model.generate(**inputs, max_new_tokens=self.max_token, temperature=self.temperature)
        return self.tokenizer.decode(outputs[0], skip_special_tokens=True)

    def chat(self, prompt: str) -> str:
        if self.use_local:
            return self.local_chat(prompt)
        return self.api_chat(prompt)

# 业务工具函数
def text_summary(tool: LLMBaseTool, content: str) -> str:
    prompt = f"请精简总结以下文本,控制在100字内:\n{content}"
    return tool.chat(prompt)

def batch_process(tool: LLMBaseTool, text_list: list) -> list:
    res = []
    for text in text_list:
        res.append(text_summary(tool, text))
    return res

# 演示入口
if __name__ == "__main__":
    # 初始化API模式工具,use_local=True切换本地模型
    llm_tool = LLMBaseTool(use_local=False)
    test_text = "大模型工具落地开发需要兼顾接口稳定性、资源占用、批量处理效率,企业使用时需做好密钥权限管控与输出内容过滤,区分线上API与本地私有化部署两种方案适配不同数据安全需求。"
    print("===单文本摘要演示===")
    print(text_summary(llm_tool, test_text))
    print("\n===批量处理演示===")
    batch_data = [test_text, "本地大模型部署需要充足显卡显存,低配置设备可使用量化模型降低硬件要求。"]
    print(batch_process(llm_tool, batch_data))

五、代码运行说明

  1. 1. 将.env文件与llm_tool.py放置同一目录,填入有效模型密钥与接口地址;
  2. 2. 本地模型模式需提前下载对应权重文件至LOCAL_MODEL_PATH目录;
  3. 3. 执行命令 python llm_tool.py 即可直接运行演示案例;
  4. 4. 扩展方向:新增输出敏感词过滤、文件读取处理、Web接口封装能力。

六、落地优化要点

  1. 1. 增加请求重试机制,解决网络波动导致的调用中断;
  2. 2. 增加并发限制,批量任务采用异步队列提升处理效率;
  3. 3. 对模型输出做长度截断、格式清洗,统一返回结构化数据;
  4. 4. 增加日志模块,记录调用耗时、输入输出用于问题排查。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 风骏时光少年 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大模型工具落地开发实战项目完整代码
    • 一、文档概述
    • 二、环境依赖
      • 1. 基础环境
      • 2. 安装依赖库
    • 三、项目整体架构
    • 四、完整实战代码
      • 4.1 配置文件 .env
      • 4.2 主程序 llm_tool.py
    • 五、代码运行说明
    • 六、落地优化要点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档