公司自部署 LLM 平台使用教程
公司平台名称为 材科源图-LLM-dealer,是团队统一使用大语言模型的入口。你可以先在“模型广场”和“排行榜”了解可用模型,再进入“控制台”管理个人配置;需要在程序或 AI 编程工具中调用时,可使用平台提供的 OpenAI 兼容接口。
2026-08-11 已在公司网络中确认首页和 About 页面可访问。未认证请求 GET /v1/models 返回 401,这表示接口工作正常,但调用前需要登录并创建个人 API Key。
| 配置项 | 管理员填写 |
|---|---|
| Web 入口 | http://192.168.100.15:9900/ |
| API Base URL | http://192.168.100.15:9900/v1 |
| API Key 入口 | 登录后打开“API 令牌”,或访问 令牌页面 |
| 推荐模型 ID | <模型 ID> |
| 网络要求 | <办公网/VPN/零信任> |
| 单次上下文与输出限制 | <限制> |
| 默认配额与限流 | <RPM/TPM/日额度> |
| 支持渠道 | <群组/工单/值班人> |
| 数据保留与审计规则 | <内部制度链接> |
Web 端使用
Section titled “Web 端使用”登录与创建会话
Section titled “登录与创建会话”- 连接可访问
192.168.100.15的办公网络或 VPN。 - 打开 平台首页,使用公司分配或允许注册的账号登录。
- 第一次使用建议先浏览“模型广场”,再用“排行榜”作参考;模型排名只是辅助信息,最终仍要按自己的任务和测试结果选择。
- 打开“控制台”开始使用或管理个人配置。首次测试请使用不含敏感信息的简单问题,确认账号与模型均可正常工作。
顶部的“更改语言”和“切换主题”可以调整阅读体验。“关于”页面目前未向未登录用户展示额外介绍正文,因此本指南只描述实际可见和已经验证的功能。
上传资料前检查
Section titled “上传资料前检查”- 只上传完成任务所必需的片段,先删除密码、Key、身份证号、客户隐私等内容。
- 确认资料密级允许进入该平台;“公司自部署”不等于所有内部资料都可无条件上传。
- 对合同、代码、财务和人事资料,遵循对应数据责任人的授权要求。
一个会话只处理一个主题。背景发生明显变化时新建会话;重要结论导出到正式文档,并记录使用的模型、日期和人工复核人。不要把聊天记录当作唯一的项目档案。
API Key 申请与保管
Section titled “API Key 申请与保管”登录后进入“控制台”,打开“API 令牌”页面并创建个人令牌。名称建议写成 姓名-设备-用途,以后看到令牌列表时能立刻知道它在哪里使用。若页面允许限制模型、额度、有效期或 IP,请只开放工作需要的范围。创建后及时保存完整 Key——出于安全考虑,页面可能不会再次完整展示。
每位同事应使用自己的令牌,不要把个人 Key 发给别人。需要部署共享服务时,请由项目负责人按公司流程申请独立的服务账号或专用令牌。
API Key 只保存在密码管理器、系统凭据存储、CI Secret 或本机环境变量中。禁止写入:
- Git 仓库、
.env.example、Prompt 和聊天记录; - 工单截图、群消息、日志和报错全文;
- 前端 JavaScript、移动端包或其他会分发给用户的客户端。
若 Key 曾经出现在以上位置,应立即撤销并重新签发,而不是只删除文件。
验证 OpenAI 兼容接口
Section titled “验证 OpenAI 兼容接口”PowerShell 临时配置
Section titled “PowerShell 临时配置”以下变量只在当前终端窗口有效,关闭窗口后失效:
$env:COMPANY_LLM_BASE_URL = "http://192.168.100.15:9900/v1"$env:COMPANY_LLM_API_KEY = "<你的 API Key>"$env:COMPANY_LLM_MODEL = "<模型 ID>"先请求模型列表,确认网络、证书和认证:
$headers = @{ Authorization = "Bearer $env:COMPANY_LLM_API_KEY" }Invoke-RestMethod -Uri "$env:COMPANY_LLM_BASE_URL/models" -Headers $headers再发送最小对话请求:
$headers = @{ Authorization = "Bearer $env:COMPANY_LLM_API_KEY" "Content-Type" = "application/json"}$body = @{ model = $env:COMPANY_LLM_MODEL messages = @(@{ role = "user"; content = "只回复:连接成功" }) temperature = 0} | ConvertTo-Json -Depth 5
Invoke-RestMethod ` -Uri "$env:COMPANY_LLM_BASE_URL/chat/completions" ` -Method Post ` -Headers $headers ` -Body $body在代码中调用
Section titled “在代码中调用”Python
Section titled “Python”import osfrom openai import OpenAI
client = OpenAI( api_key=os.environ["COMPANY_LLM_API_KEY"], base_url=os.environ["COMPANY_LLM_BASE_URL"],)
response = client.chat.completions.create( model=os.environ["COMPANY_LLM_MODEL"], messages=[{"role": "user", "content": "只回复:连接成功"}], temperature=0,)print(response.choices[0].message.content)JavaScript / TypeScript
Section titled “JavaScript / TypeScript”import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.COMPANY_LLM_API_KEY, baseURL: process.env.COMPANY_LLM_BASE_URL,});
const response = await client.chat.completions.create({ model: process.env.COMPANY_LLM_MODEL, messages: [{ role: "user", content: "只回复:连接成功" }], temperature: 0,});console.log(response.choices[0].message.content);模型与参数选择
Section titled “模型与参数选择”| 场景 | 优先选择 | 关注参数 |
|---|---|---|
| 分类、抽取、固定格式 | 快速/低成本模型 | 低随机性、结构化输出、字段校验 |
| 长文总结与知识问答 | 长上下文模型 | 输入长度、引用、检索增强 |
| 代码与复杂分析 | 推理或代码模型 | 工具调用、超时、最大输出 |
| 头脑风暴与多版本文案 | 通用模型 | 生成多个候选,再人工筛选 |
模型名必须使用平台返回的准确 ID。不要根据展示名称猜测 API 中的 model 值。
常见错误排查
Section titled “常见错误排查”| 现象 | 常见原因 | 处理方式 |
|---|---|---|
401/403 |
Key 错误、过期或无模型权限 | 重新复制 Key;检查权限;必要时轮换 |
404 |
Base URL、/v1 或接口路径错误 |
对照配置卡和平台文档检查完整 URL |
429 |
请求或 Token 超出配额 | 指数退避;减少并发;申请配额,勿无限重试 |
400 context length |
输入与预留输出超过上下文 | 分块、摘要、检索,只发送必要内容 |
| 连接超时 | 未连 VPN、代理或证书问题 | 检查网络、DNS、系统时间和公司 CA |
| 模型不存在 | 使用了展示名或已下线 ID | 调用 /models 并更新配置 |
| 输出格式不稳定 | 仅靠自然语言约束 | 使用结构化输出/Schema,并在代码中校验 |
- 使用脱敏测试集验证正确率、格式、延迟和成本。
- 为
429、5xx和超时设置有限次数的退避重试。 - 日志不记录完整 Key、敏感 Prompt 或原始附件。
- 对模型输出做类型、范围和权限校验,不能直接执行高风险操作。
- 固定或记录模型版本;路由变化后重新跑回归测试。
- 设置预算、告警、Key 轮换和离职回收流程。