模型返回的 JSON 总在变花样 让 LLM 抽取工单里的"订单号、问题类型、紧急度"并输出 JSON,结果它时而多回一句解释,时而把字段名写成 order_num 而非 orderId,解析直接炸,下游拿到 null 又是一堆空指针。要做可靠的系统,结构化输出必须可控。我把"约束加重试加校验"几层
Java 也要有自己的 AI 抽象层 2023 年初,Python 侧 LangChain 已经热闹非凡,Java 这边还在各自调 OpenAI 的 HTTP。我们团队想给内部系统接个问答能力,结果每个项目都自己封装一套 OkHttp 调用,模型一换全部重写。Spring 社区开始孵化一个叫 Spr
LLM 进了核心链路,黑盒就太危险 工单助手上线后,运营反馈"有时候答非所问"。但 LLM 调用对我们来说是个黑盒:不知道每次花了多少 token、耗时多少、模型返回了啥。更糟的是出了错没法归因。我参照传统可观测性,给 LLM 调用也接上了 Trace、Token 统计和效果评估三件套,才算把这层黑
给内部文档做个能问答的机器人 公司几百份技术文档散在 Wiki,搜起来费劲——关键词搜只能匹配字面,问"怎么处理订单超时"搜不到"订单 30 分钟未支付自动关单"的那段。我想用 RAG(检索增强生成)做个问答,让模型"先查资料再回答"。2023 年初这套链路在 Java 侧得自己拼,没有现成框架,正
背景:一个 RAG 需求把选型问题拍到了脸上 三月初产品提了个需求:把过去三年积攒的技术工单做成内部知识库,让用户用自然语言提问。核心就一步——向量相似度检索。团队当时在 Milvus、PGVector、Redis 三套方案里反复横跳,谁也说服不了谁。我干脆拉了一台 16C32G 的机器,把三套都跑
为什么要看 Java 的 LLM 框架 团队要做个工单自动分类的小工具,调用 OpenAI。一开始我手搓 HttpClient 拼 JSON,发现每加一个能力就要重写一遍请求体、解析流、管上下文。更烦的是流式输出要自己处理 SSE,错误码要自己映射,超时和重试也要自己写。做了两个功能之后,代码里一半
问题代码:第一版大模型调用把线程池打满了 四月我们想给工单系统接一个大模型做自动摘要。第一版我图省事,用 RestTemplate 直接 POST 到 OpenAI 兼容接口,同步等返回。压测一上来就出问题:模型平均响应 3 秒,线程池 200 个线程 10 秒就被占满,QPS 卡在 60 上不去。