一、整体架构与技术选型
1. 核心架构
系统分为三层,职责清晰:
- 前端交互层:简单的控制台界面(Java 实现),用于输入问题、展示回答;
- 核心逻辑层:Java 编写,负责接收用户输入、调用 Python AI 服务、处理返回结果;
- AI 模型层:Python 实现,基于轻量化 LLM(如 Llama2-7B 量化版、ChatGLM-6B-int4)提供问答能力。
2. 技术栈
| 模块 | 技术/工具 | 说明 |
|---|---|---|
| Java 核心 | JDK 11+、Maven | 基础运行环境、依赖管理 |
| Python AI | Python 3.9+、Transformers、PyTorch | 加载轻量化 LLM、处理问答 |
| 进程通信 | Java ProcessBuilder | Java 调用 Python 脚本 |
| 轻量化模型 | ChatGLM-6B-int4(推荐) | 本地运行,资源占用低 |
二、环境准备
1. Java 环境配置
- 下载安装 JDK 11+(Oracle 官网或 OpenJDK);
- 配置环境变量
JAVA_HOME,验证:java -version能显示版本即可。
2. Python 环境配置
- 安装 Python 3.9+(Python 官网);
安装依赖包:
pip install torch transformers accelerate sentencepiece protobuf # 若用 ChatGLM,额外安装: pip install modelscope
3. 下载轻量化 AI 模型
推荐使用ChatGLM-6B-int4(适合 8G 以上内存的本地环境):
- 方式 1:通过 ModelScope 下载(Python 代码自动下载);
- 方式 2:手动下载(Hugging Face 地址),解压到本地目录(如
./models/chatglm-6b-int4)。
三、Python 端:实现 AI 问答服务
编写 Python 脚本 ai_answer.py,负责加载模型并处理问答请求,接收 Java 传递的问题,返回回答。
import sys
from transformers import AutoTokenizer, AutoModel
# 加载 ChatGLM-6B-int4 模型(根据实际路径调整)
model_path =
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=)
model = AutoModel.from_pretrained(model_path, trust_remote_code=).half().cuda()
model = model.()
():
:
response, _ = model.chat(tokenizer, question, history=[])
response
Exception e:
__name__ == :
(sys.argv) > :
question = sys.argv[]
answer = get_answer(question)
(answer)
:
()

