首页 文章 精选 留言 我的

精选列表

搜索[solon-ai],共54篇文章
优秀的个人博客,低调大师

🔥 用 solon-ai 写个简单的 deepseek 程序(构建全国产 ai 智能体应用)

用国产应用开发框架(及生态),对接国产 ai。构建全国产 ai 智能体应用。 1、先要申请个 apiKey 打开https://www.deepseek.com官网,申请个 apiKey 。(一万字略过) 2、试试:Hello deepseek 用 solon-initializr (https://solon.noear.org/start/),生成一个 solon-web 模板项目。之后: 在应用属性里添加配置(app.yml) solon.ai.chat: deepseek: apiUrl: "https://api.deepseek.com/v1/chat/completions" # 使用完整地址(而不是 api_base) apiKey: "sk-9f4415ddc57049658189************" # 填写自己申请的 apiKey model: "deepseek-chat" 用配置器类构建通用聊天模型 @Configuration public class DeepseekConfig { @Bean public ChatModel chatModel(@Inject("${solon.ai.chat.deepseek}") ChatConfig config) { return ChatModel.of(config).build(); } } 添加测试用的控制器 @Controller public class DemoController { @Inject ChatModel chatModel; @Mapping("hello") public String hello(String message) throws IOException { return chatModel.prompt(message).call().getMessage().getContent(); } } 测试一下 启动项目。打开浏览器地址:http://localhost:8080/hello?message=hello。效果良好: 3、尝试把输出改成 sse,方便打字效果的聊天窗口开发 这里需要添加两个插件依赖,协助流式输出 sse 数据。 插件 作用 org.noear:solon-web-rx 提供响应式输出(就是流式输出) org.noear:solon-web-sse 提供sse渲染支持 加好依赖后,只需要改进下控制器的几行代码: @Controller public class DemoController { @Inject ChatModel chatModel; @Produces(MimeType.TEXT_EVENT_STREAM_UTF8_VALUE) //这个很重要,申明用 sse 格式渲染 @Mapping("hello") public Flux<String> hello(String message) throws IOException { return Flux.from(chatModel.prompt(message).stream()) .filter(resp -> resp.hasChoices()) .map(resp -> resp.getMessage().getContent()); } } 测试一下 启动项目。再次打开浏览器地址:http://localhost:8080/hello?message=hello。效果良好: 4、现在开始 RAG,以 “联网搜索” 作为知识库 这里把“联网搜索”,做为一个知识库使用(内部是动态搜索的)。用它作为 RAG 的外部检索支持。 应用属性加一块配置 solon.ai.chat: deepseek: apiUrl: "https://api.deepseek.com/v1/chat/completions" # 使用完整地址(而不是 api_base) apiKey: "sk-9f4415ddc57049658189************" # 填写自己申明的 apiKey model: "deepseek-chat" solon.ai.repo: websearch: apiUrl: "https://api.bochaai.com/v1/web-search" # 使用完整地址(而不是 api_base) apiKey: "sk-demo..." 配置器类也调整下 @Configuration public class DeepseekConfig { @Bean public ChatModel chatModel(@Inject("${solon.ai.chat.deepseek}") ChatConfig config) { return ChatModel.of(config).build(); } @Bean public Repository repository(@Inject("${solon.ai.repo.websearch}") AiConfig config) { return new WebSearchRepository(null, config); } } 再改改控制器(输出重新写回简单的方式,不然不好截图) @Controller public class DemoController { @Inject ChatModel chatModel; @Inject Repository repository; @Mapping("hello") public String hello(String message) throws IOException { //检索 List<Document> context = repository.search(new QueryCondition(message).limit(4)); //消息增强 ChatMessage chatMessage = UserMessage.augment(message, context); //提交大模型并简单返回(不然,截图不好截) return chatModel.prompt(chatMessage).call().getMessage().getContent(); } } 测试一下 启动项目。打开浏览器地址:http://localhost:8080/hello?message=solon%20%E6%98%AF%E8%B0%81%E5%BC%80%E5%8F%91%E7%9A%84%EF%BC%9F。效果良好:

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册