构建LightLLM+LlamaIndex法律智能体
LightLLM 是一款面向高效推理与轻量化部署的开源推理框架,其设计核心聚焦于在有限硬件资源上实现主流大语言模型的快速运行,通过高效内存管理与算子融合技术优化推理速度,具备良好的扩展性以快速集成不同规模模型并支持多种量化策略,适用于教学实验、小型企业部署及个人项目开发等多类场景。
近年来,大语言模型(LLM)能力显著,但其知识的静态滞后性导致其在处理新信息或专业问题时易产生“幻觉”。RAG(retrieval-augmented generation,检索增强生成)框架通过“先检索后生成”的方式,将外部知识库的准确性与LLM的生成能力相结合,有效解决了这一问题,成为构建企业知识库、法律医疗等专业应用的核心技术。在此背景下,掌握以LightLLM为代表的高效推理框架,不仅能帮助学习者深入理解RAG的协同机制,更能培养在资源受限环境下优化与部署AI系统的关键能力,为投身AI应用开发奠定坚实基础。
前提条件
- 用户已经获取LLaMA Factory Online平台账户和密码,如果需要帮助或尚未注册,可参考注册账户完成注册。
- 当前账号的余额充裕,可满足实例运行的需要。点击可了解最新的活动及费用信息,或前往充值,如需了解更多请联系我们。
操作步骤
配置概览
配置参数 | 配置项 | 说明 |
---|---|---|
模型 | Qwen3-8B | 本实践通过本地启动大模型服务 |
GPU | H800*1 | - |
操作详情
-
使用已注册的LLaMA Factory Online账号登录平台,选择[实例空间]菜单项,进入实例空间页面,例如下图所示。
-
单击上图“开始微调”按钮,进入[配置资源]页面,选择GPU资源,卡数填写
1
,其他参数保持为默认值,单击“启动”按钮,启动实例。 -
实例启动后,可启动VSCode或者JupyterLab专属数据处理,本次实践我们使用VSCode专属数据处理,单击图标链接进入数据处理页面,点击[Terminal/New Terminal]进入终端页面。在终端运行如下所示的命令安装服务运行所需环境。
- 运行如下命令创建一个名称为“py39”的Python环境。
conda create -n lightllm python=3.10
- 运行如下所示的命令激活自定义的环境。
conda activate lightllm
- 运行如下所示的命令,在已经激活的Python环境中安装
ipykernel
包。
pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
- 运行如下所示的命令,将当前Python环境注册为Jupyter内核。
kernel_install --name lightllm --display-name "Python 3.10 (lightllm)"
提示您需在对应的Conda环境中运行上述注册命令,否则内核(kernel)将无法正确注册。
-
Python环境安装完成后,在终端运行如下所示的命令下载并安装LightLLM框架及其依赖项,例如下图所示。
- 运行如下命令,从GitHub仓库克隆LightLLM项目的源代码到本地。
git clone https://github.com/ModelTC/lightllm.git
- 运行如下所示的命令,进入项目目录。
cd lightllm
- 运行如下所示的命令,安装项目运行所需的所有Python依赖包。
pip install -r requirements.txt
- 运行如下所示的命令,以开发模式安装LightLLM包。
python setup.py install
- 运行如下命令,安装LlamaIndex库,用于构建基于私有数据的检索增强生成(RAG)应用。
pip install llama-index
- 运行如下所示的命令,安装Streamlit库,用于快速创建交互式数据可视化网页应用。
pip install streamlit
- 运行如下命令,安装LightLLM运行所需的计算机视觉处理库和WebSocket通信支持依赖包。
pip install torchvision
pip install websockets
pip install partial-json-parser
pip install interegular- 运行如下命令,安装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"
命令查看依赖包安装情况,例如下图所示。 -
依赖包安装完成后,运行如下所示命令,启动LightLLM框架的API服务器提供标准的OpenAI兼容接口,支持文本生成、对话等推理功能,模型加载成功后,页面显示例如下图所示,默认端口为8000。
python -m lightllm.server.api_server --model_dir /shared-only/models/Qwen/Qwen3-8B
-
新建Terminal窗口,执行如下代码测试模型推理功能是否正常,服务正常启动页面例如下图所示。
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
}' -
点击链接下载app.py,下载后将文件拖拽至
/workspace/lightllm
目录下,然后运行如下所示命令加载RAG服务,加载成功后页面例如下图所示。streamlit run app.py \
--server.address 0.0.0.0 \
--server.port 6666 \
--server.enableCORS false \
--server.enableXsrfProtection false -
点击服务链接,进入本地RAG文档搜索助手页面,例如下图所示。
服务应用
服务部署完成后,用户可自定义构建知识库,并基于库内信息查询相关问题,快速获取解决方案。
- RAG服务回复
- 原生模型回复
单击上方高亮区域的“Browse files”按钮,选择PDF或TXT格式的知识库文件上传,或直接将文件拖拽至该区域,本实践上传示例1,示例2。
待页面出现“✅文档已加载并索引!”即可输入您的问题,例如:“ 我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。”。观察应用回复,例如下图所示,回答详情可展开“Details”查看详情。
Details
回答
<think>
好的,我现在需要处理用户的查询。用户提到他有考勤记录截图和与领导沟通加班的微信记录,劳动合同写的是月薪8000元,但公司按基本工资3000元计算加班费,他主张最近一年的加班费差额。我需要根据提供的上下文信息来给出建议,不能使用外部知识。
首先,回顾之前的对话历史。用户之前的问题涉及电子签字的补强、加班费计算基数的确定,以及如何应对公司可能的抗辩。现在的情况是用户有考勤记录和微信记录,但公司使用基本工资作为基数,而实际月薪是8000元。需要确定如何主张加班费。
根据上下文中的信息,特别是用户之前的问题,仲裁时通常会以实际工资作为基数,尤其是当合同未明确约定时。用户提到劳动合同写的是月薪8000元,但公司按3000元计算,这可能涉及公司未按实际工资支付加班费的问题。
需要强调用户应明确以实际月工资8000元为基数,因为劳动合同可能未明确工资构成,而银行流水显示实际发放的是8000元。公司如果主张基本工资3000元,用户需要反驳,指出工资条中未明确包含加班费,且实际发放金额为8000元,可能包含其他部分如绩效或补贴,但加班费应基于总收入计算。
另外,用户需要确保考勤记录和微信记录能够证明加班事实和公司安排,同时可能需要准备登录公司系统验证考勤记录的真实性,避免被质疑截图的真实性。微信记录需要明确显示加班日期和任务,以支持加班时长。
最后,仲裁请求应明确要求公司支付差额,并引用相关法律条款,如《劳动法》和《工资支付暂行规定》,强调公司未足额支付加班费的违法性。同时,提醒用户注意公司可能的抗辩,如工资构成,需提前准备反驳证据。
<think>
你的考勤记录截图和微信沟通记录已能形成完整证据链,可明确主张以实际月工资 8000 元为基数计算加班费。具体操作建议如下:
- 明确计算基数:劳动合同虽约定月薪 8000 元,但公司按 3000 元计算加班费,需在仲裁中强调“工资条未列明加班费项目,且银行流水显示实际月工资为 8000 元”,主张以实际收入总额作为加班费计算基数。
- 强化加班事实:考勤记录截图需与微信记录中的加班安排(如具体日期、任务内容)相互印证,证明加班系公司安排而非自愿。若考勤记录为截图,可提前准备公司系统登录方式,当庭演示验证真实性。
- 计算差额金额:根据法定加班费倍数(工作日 1.5 倍、周末 2 倍、法定节假日 3 倍)及实际加班时长,计算应得加班费总额,并与公司已支付部分对比,明确差额金额。
- 应对公司抗辩:若公司主张“3000 元为基本工资”,可反驳称“劳动合同未约定工资构成,且公司未提供薪酬制度证明基本工资与绩效工资的区分,应视为未足额支付加班费”。
- 仲裁请求:明确请求裁决公司支付最近一年加班费差额(具体金额),并引用《劳动法》第四十四条及《工资支付暂行规定》第十三条作为法律依据。
应用步骤6命令,修改content内容为:“我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。”观察模型回答,例如下图所示,回答详情可展开“Details”查看详情。
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B",
"messages": [{"role": "user", "content": " 我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。"}],
"max_tokens": 1000
}'
Details
回答
<think>\n嗯,用户上个月离职了,但公司还欠他很多加班费没给,他不知道该怎么办。首先,我需要了解他可能的情况和需求。他可能已经尝试过和公司沟通,但没有得到解决,所以现在需要法律上的帮助。我应该先确认他的基本情况,比如公司名称、离职时间、加班费的金额,以及是否有相关证据,比如考勤记录、工资单、聊天记录等。这些证据对他后续维权很重要。\n\n接下来,用户可能不了解具体的法律程序,所以需要详细说明步骤。比如是否需要先与公司协商,如果失败再申请劳动仲裁。此外,他可能担心仲裁的费用和时间,需要提醒他劳动仲裁是免费的,而且有时间限制,比如一年内必须申请,所以要尽快处理。\n\n还要考虑用户可能的问题,比如公司不承认加班时间,或者不愿意支付,这时候需要建议他收集证据,比如同事的证词、电子邮件、打卡记录等。另外,如果公司是有限责任公司,可能可以考虑起诉法人代表或股东,但这可能比较复杂,需要专业律师的帮助。\n\n用户可能还担心自己的权益是否能被保障,特别是如果公司不配合的话。这时候需要强调法律的强制力,以及劳动仲裁的结果是终局性的,可以申请法院强制执行。另外,提醒他注意保留所有沟通记录,避免证据丢失。\n\n最后,要给出一个清晰的步骤指南,从收集证据到协商,再到仲裁或诉讼,确保用户知道每一步该怎么做,并且鼓励他不要放弃,及时行动。可能还需要提醒他不要采取过激行为,以免影响维权。\n<think>\n\n如果你因为公司拖欠加班费而离职,但公司仍未支付欠薪,你有合法权利维护自己的权益。以下是具体的解决步骤和建议:\n\n---\n\n### 一、确认你的权益\n根据《劳动法》《劳动合同法》和《工资支付暂行规定》,劳动者因工作时间、加班工资、经济补偿等与用人单位发生争议的,可依法维权。公司拖欠加班费属于违法行为。\n\n---\n\n### 二、收集证据\n这是关键,确保你的诉求有据可依:\n1. 劳动合同:确认加班费的约定(是否有明确的加班工资标准)。\n2. 考勤记录:如打卡记录、工时统计表、电子考勤系统截图等。\n3. 工资单/银行流水:证明你的基本工资和实际发放情况(若已发部分工资,需区分正常工资与加班费)。\n4. 加班证据:\n - 工作群/邮件等电子记录(如提到加班、加班时长或工作内容);\n - 同事或主管的证人证言(可书面或录音);\n - 公司安排加班的通知、排班表等。\n5. 离职证明或通知书:证明你已离职。\n6. 沟通记录:与公司协商欠薪的聊天记录、通话记录等。\n\n---\n\n### 三、第一步:协商\n先尝试与公司协商解决:\n1. 书面沟通:通过微信、邮件或挂号信等方式要求公司支付欠薪,并保留证据。\n2. 报警处理:若公司拒不支付,可向当地公安机关报案,但需注意:除非情节严重(如恶意拖欠导致生活困难),否则警方可能不予受理。\n\n---\n\n### 四、第二步:申请劳动仲裁\n如协商无果,需在离职后一年内(注意时效)向劳动仲裁委员会申请仲裁:\n1. 准备材料:\n - 仲裁申请书(注明申请人、被申请人、仲裁请求、事实与理由);\n - 身份证复印件;\n - 证据清单及复印件(如劳动合同、考勤记录等);\n - 如果公司未签劳动合同,需保留相关证据(如社保缴纳记录、工资支付凭证等)。\n2. 提交仲裁:向公司所在地或劳动合同履行地的劳动仲裁委员会提交材料。 \n3. 仲裁流程:一般30-60天内出结果,劳动仲裁是维权的前置程序,如不服可向法院起诉。\n\n---\n\n### 五、仲裁后的处理\n1. 仲裁裁决:若仲裁支持你的诉求,公司需在指定时间内支付欠薪;若公司拒不履行,可向法院申请强制执行。\n2. 起诉:若仲裁结果不满意,可在15日内向法院提起诉讼,诉讼时效为2年。\n3. 法院强制执行:若公司仍不支付,可申请法院强制执行工资,法院可冻结公司账户、查封财产等。\n\n---\n\n### 六、特殊注意事项\
多维度对比两类服务的回复,对比详情如下所示。
对比维度 | RAG服务回复 | 原生模型回复 |
---|---|---|
1. 计算基数主张 | ✅ 明确指出应以实际发放工资8000元为基数,并提出反驳策略:“工资条未列明加班费项目”、“银行流水为证” | ⚠️ 仅说明“可能存在违法风险”,未给出具体举证方式或反制话术 |
2. 证据链构建 | ✅ 强调“考勤截图+微信记录”需相互印证,并建议“当庭登录系统验证真实性”——这是关键实操技巧 | ❌ 仅说“需能证明具体时间”,缺乏操作指引 |
3. 加班事实认定 | ✅ 点出核心:“加班系公司安排而非自愿”——这是仲裁胜负关键点之一 | ❌ 未涉及此关键法律要件 |
4. 差额计算方法 | ✅ 明确列出倍数标准(工作日1.5倍、周末2倍、法定节假日3倍),要求精确核算差额金额 | ❌ 只提法律规定,无具体计算指导 |
5. 应对公司抗辩 | ✅ 预判对方可能说“3000是基本工资”,并提供标准反驳话术:“劳动合同未约定工资构成”、“公司未提供薪酬制度证明”,应视为未足额支付 | ❌ 虽提到地方差异,但未教用户如何应对企业常见推诿 |
6. 仲裁请求撰写 | ✅ 明确写出应提交的仲裁请求模板,包括诉求金额、法律依据(《劳动法》第44条、《工资支付暂行规定》第13条) | ❌ 仅有知识介绍,无行动指令 |
7. 用户角色定位 | ✅ 把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导 | ❌ 把用户当作学习者,进行普法教育式的内容输出 |
原生模型回复偏重知识普及,无法提供具体的指导。RAG服务回复更具实战性、对抗性和可操作性,适合作为智能法律助手的输出标准,把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导。
总结
通过“轻量级RAG验证 → 功能迭代优化 → 企业级部署落地”的渐进式路径,我们基于LightLLM高效推理引擎,构建了一套可落地的智能知识服务系统。该方案有效缓解了大模型在专业领域存在的知识滞后与幻觉问题,可在法律场景中实现从法条检索、判例匹配到案情分析的全流程应用,显著提升响应准确率与业务可用性。
实践验证了该架构在高精度、强合规性场景下的可行性,具备向金融、医疗、政务等知识密集型行业快速复制的能力。后续将持续深化多模态内容理解、复杂任务编排与安全可控机制,推动RAG技术与企业业务流程深度融合,打造稳定、可解释、可扩展的行业AI解决方案,真正实现人工智能在核心业务场景中的价值闭环。