跳到主要内容

构建LightLLM+LlamaIndex法律智能体

更新时间:2025-10-16 16:43:25
Agent使用超便捷RAGLightLLM个人开发教学实验
信息

LightLLM 是一款面向高效推理与轻量化部署的开源推理框架,其设计核心聚焦于在有限硬件资源上实现主流大语言模型的快速运行,通过高效内存管理与算子融合技术优化推理速度,具备良好的扩展性以快速集成不同规模模型并支持多种量化策略,适用于教学实验、小型企业部署及个人项目开发等多类场景。

近年来,大语言模型(LLM)能力显著,但其知识的静态滞后性导致其在处理新信息或专业问题时易产生“幻觉”。RAG(retrieval-augmented generation,检索增强生成)框架通过“先检索后生成”的方式,将外部知识库的准确性与LLM的生成能力相结合,有效解决了这一问题,成为构建企业知识库、法律医疗等专业应用的核心技术。在此背景下,掌握以LightLLM为代表的高效推理框架,不仅能帮助学习者深入理解RAG的协同机制,更能培养在资源受限环境下优化与部署AI系统的关键能力,为投身AI应用开发奠定坚实基础。

前提条件

  • 用户已经获取LLaMA Factory Online平台账户和密码,如果需要帮助或尚未注册,可参考注册账户完成注册。
  • 当前账号的余额充裕,可满足实例运行的需要。点击可了解最新的活动费用信息,或前往充值,如需了解更多请联系我们

操作步骤

配置概览

配置参数配置项说明
模型Qwen3-8B本实践通过本地启动大模型服务
GPUH800*1-

操作详情

  1. 使用已注册的LLaMA Factory Online账号登录平台,选择[实例空间]菜单项,进入实例空间页面,例如下图所示。

    SwanLab对比图

  2. 单击上图“开始微调”按钮,进入[配置资源]页面,选择GPU资源,卡数填写1,其他参数保持为默认值,单击“启动”按钮,启动实例。

    SwanLab对比图

  3. 实例启动后,可启动VSCode或者JupyterLab专属数据处理,本次实践我们使用VSCode专属数据处理,单击图标链接进入数据处理页面,点击[Terminal/New Terminal]进入终端页面。在终端运行如下所示的命令安装服务运行所需环境。

    1. 运行如下命令创建一个名称为“py39”的Python环境。
    conda create -n lightllm python=3.10
    1. 运行如下所示的命令激活自定义的环境。
    conda activate lightllm
    1. 运行如下所示的命令,在已经激活的Python环境中安装ipykernel包。
    pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
    1. 运行如下所示的命令,将当前Python环境注册为Jupyter内核。
    kernel_install --name lightllm  --display-name "Python 3.10 (lightllm)"
    提示

    您需在对应的Conda环境中运行上述注册命令,否则内核(kernel)将无法正确注册。

  4. Python环境安装完成后,在终端运行如下所示的命令下载并安装LightLLM框架及其依赖项,例如下图所示。

    1. 运行如下命令,从GitHub仓库克隆LightLLM项目的源代码到本地。
    git clone https://github.com/ModelTC/lightllm.git
    1. 运行如下所示的命令,进入项目目录。
    cd lightllm
    1. 运行如下所示的命令,安装项目运行所需的所有Python依赖包。
    pip install -r requirements.txt
    1. 运行如下所示的命令,以开发模式安装LightLLM包。
    python setup.py install
    1. 运行如下命令,安装LlamaIndex库,用于构建基于私有数据的检索增强生成(RAG)应用。
    pip install llama-index
    1. 运行如下所示的命令,安装Streamlit库,用于快速创建交互式数据可视化网页应用。
    pip install streamlit
    1. 运行如下命令,安装LightLLM运行所需的计算机视觉处理库和WebSocket通信支持依赖包。
    pip install torchvision
    pip install websockets
    pip install partial-json-parser
    pip install interegular
    1. 运行如下命令,安装LlamaIndex框架对HuggingFace本地嵌入模型的支持包,使RAG应用能够使用BAAI/bge等本地嵌入模型进行文本向量化。
    pip install llama-index-embeddings-huggingface

    您可运行pip list | grep -E "torchvision|websockets|partial-json-parser|interegular|streamlit|llama-index|llama-index-embeddings-huggingface"命令查看依赖包安装情况,例如下图所示。

    SwanLab对比图

  5. 依赖包安装完成后,运行如下所示命令,启动LightLLM框架的API服务器提供标准的OpenAI兼容接口,支持文本生成、对话等推理功能,模型加载成功后,页面显示例如下图所示,默认端口为8000。

    SwanLab对比图

    python -m lightllm.server.api_server --model_dir /shared-only/models/Qwen/Qwen3-8B
  6. 新建Terminal窗口,执行如下代码测试模型推理功能是否正常,服务正常启动页面例如下图所示。

    SwanLab对比图

    curl -X POST "http://localhost:8000/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "Qwen3-8B",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 1000
    }'
  7. 点击链接下载app.py,下载后将文件拖拽至/workspace/lightllm目录下,然后运行如下所示命令加载RAG服务,加载成功后页面例如下图所示。

    SwanLab对比图

    streamlit run app.py \
    --server.address 0.0.0.0 \
    --server.port 6666 \
    --server.enableCORS false \
    --server.enableXsrfProtection false
  8. 点击服务链接,进入本地RAG文档搜索助手页面,例如下图所示。

    SwanLab对比图

服务应用

服务部署完成后,用户可自定义构建知识库,并基于库内信息查询相关问题,快速获取解决方案。

单击上方高亮区域的“Browse files”按钮,选择PDF或TXT格式的知识库文件上传,或直接将文件拖拽至该区域,本实践上传示例1示例2

待页面出现“✅文档已加载并索引!”即可输入您的问题,例如:“ 我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。”。观察应用回复,例如下图所示,回答详情可展开“Details”查看详情。

SwanLab对比图

Details
回答

<think>

好的,我现在需要处理用户的查询。用户提到他有考勤记录截图和与领导沟通加班的微信记录,劳动合同写的是月薪8000元,但公司按基本工资3000元计算加班费,他主张最近一年的加班费差额。我需要根据提供的上下文信息来给出建议,不能使用外部知识。

首先,回顾之前的对话历史。用户之前的问题涉及电子签字的补强、加班费计算基数的确定,以及如何应对公司可能的抗辩。现在的情况是用户有考勤记录和微信记录,但公司使用基本工资作为基数,而实际月薪是8000元。需要确定如何主张加班费。

根据上下文中的信息,特别是用户之前的问题,仲裁时通常会以实际工资作为基数,尤其是当合同未明确约定时。用户提到劳动合同写的是月薪8000元,但公司按3000元计算,这可能涉及公司未按实际工资支付加班费的问题。

需要强调用户应明确以实际月工资8000元为基数,因为劳动合同可能未明确工资构成,而银行流水显示实际发放的是8000元。公司如果主张基本工资3000元,用户需要反驳,指出工资条中未明确包含加班费,且实际发放金额为8000元,可能包含其他部分如绩效或补贴,但加班费应基于总收入计算。

另外,用户需要确保考勤记录和微信记录能够证明加班事实和公司安排,同时可能需要准备登录公司系统验证考勤记录的真实性,避免被质疑截图的真实性。微信记录需要明确显示加班日期和任务,以支持加班时长。

最后,仲裁请求应明确要求公司支付差额,并引用相关法律条款,如《劳动法》和《工资支付暂行规定》,强调公司未足额支付加班费的违法性。同时,提醒用户注意公司可能的抗辩,如工资构成,需提前准备反驳证据。

<think>

你的考勤记录截图和微信沟通记录已能形成完整证据链,可明确主张以实际月工资 8000 元为基数计算加班费。具体操作建议如下:

  1. 明确计算基数:劳动合同虽约定月薪 8000 元,但公司按 3000 元计算加班费,需在仲裁中强调“工资条未列明加班费项目,且银行流水显示实际月工资为 8000 元”,主张以实际收入总额作为加班费计算基数。
  2. 强化加班事实:考勤记录截图需与微信记录中的加班安排(如具体日期、任务内容)相互印证,证明加班系公司安排而非自愿。若考勤记录为截图,可提前准备公司系统登录方式,当庭演示验证真实性。
  3. 计算差额金额:根据法定加班费倍数(工作日 1.5 倍、周末 2 倍、法定节假日 3 倍)及实际加班时长,计算应得加班费总额,并与公司已支付部分对比,明确差额金额。
  4. 应对公司抗辩:若公司主张“3000 元为基本工资”,可反驳称“劳动合同未约定工资构成,且公司未提供薪酬制度证明基本工资与绩效工资的区分,应视为未足额支付加班费”。
  5. 仲裁请求:明确请求裁决公司支付最近一年加班费差额(具体金额),并引用《劳动法》第四十四条及《工资支付暂行规定》第十三条作为法律依据。

多维度对比两类服务的回复,对比详情如下所示。

对比维度RAG服务回复原生模型回复
1. 计算基数主张✅ 明确指出应以实际发放工资8000元为基数,并提出反驳策略:“工资条未列明加班费项目”、“银行流水为证”⚠️ 仅说明“可能存在违法风险”,未给出具体举证方式或反制话术
2. 证据链构建✅ 强调“考勤截图+微信记录”需相互印证,并建议“当庭登录系统验证真实性”——这是关键实操技巧❌ 仅说“需能证明具体时间”,缺乏操作指引
3. 加班事实认定✅ 点出核心:“加班系公司安排而非自愿”——这是仲裁胜负关键点之一❌ 未涉及此关键法律要件
4. 差额计算方法✅ 明确列出倍数标准(工作日1.5倍、周末2倍、法定节假日3倍),要求精确核算差额金额❌ 只提法律规定,无具体计算指导
5. 应对公司抗辩✅ 预判对方可能说“3000是基本工资”,并提供标准反驳话术:“劳动合同未约定工资构成”、“公司未提供薪酬制度证明”,应视为未足额支付❌ 虽提到地方差异,但未教用户如何应对企业常见推诿
6. 仲裁请求撰写✅ 明确写出应提交的仲裁请求模板,包括诉求金额、法律依据(《劳动法》第44条、《工资支付暂行规定》第13条)❌ 仅有知识介绍,无行动指令
7. 用户角色定位✅ 把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导❌ 把用户当作学习者,进行普法教育式的内容输出

原生模型回复偏重知识普及,无法提供具体的指导。RAG服务回复更具实战性、对抗性和可操作性,适合作为智能法律助手的输出标准,把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导。

总结

通过“轻量级RAG验证 → 功能迭代优化 → 企业级部署落地”的渐进式路径,我们基于LightLLM高效推理引擎,构建了一套可落地的智能知识服务系统。该方案有效缓解了大模型在专业领域存在的知识滞后与幻觉问题,可在法律场景中实现从法条检索、判例匹配到案情分析的全流程应用,显著提升响应准确率与业务可用性。

实践验证了该架构在高精度、强合规性场景下的可行性,具备向金融、医疗、政务等知识密集型行业快速复制的能力。后续将持续深化多模态内容理解、复杂任务编排与安全可控机制,推动RAG技术与企业业务流程深度融合,打造稳定、可解释、可扩展的行业AI解决方案,真正实现人工智能在核心业务场景中的价值闭环。