摘要:

注:本文篇幅较长,且需要有一定的java基础,建议各位看官,备好瓜子、饮料、小板凳,摆个让自己舒服的姿势,慢慢细看^_^, 文中素材均来自互联网(末尾有给出参考文章链接)。 一、JVM运行时内存布局 按java 8虚拟机规范的原始表达:(jvm)Run-Time Data Areas, 暂时翻译为"
阅读全文
posted @ 2019-06-11 14:20
菩提树下的杨过
阅读(6480)
推荐(11)
摘要:

一、jmap找出占用内存较大的实例 先给个示例代码: import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; /** * Created by 菩提树下的杨过 on
阅读全文
posted @ 2017-09-07 11:43
菩提树下的杨过
阅读(4477)
推荐(5)
摘要:

众所周知,cursor是基于vs code魔改的一个独立应用,并不象copilot、通义灵码 这类采用plugin机制的AI辅助编码工具。在cursor-cli 与 idea MCP出来之前,只能通过idea里安装 Switch2Cursor Plugin for JetBrains IDEs |
阅读全文
posted @ 2025-10-19 00:40
菩提树下的杨过
阅读(165)
推荐(0)
摘要:

虚拟线程是一个非常有用的特性,但是JDK25以前,一直存在pinned问题,一些场景下会导致平台线程被占用无法释放。 比如下面的代码,在JDK 21下运行时,会卡住: import java.time.Duration; import java.util.concurrent.Executors;
阅读全文
posted @ 2025-10-16 20:48
菩提树下的杨过
阅读(34)
推荐(1)
摘要:

大模型本身的”知识体系“一般来说,局限于受训练时使用的数据。超出这个数据范围的问题,靠模型自身是无法解答的,得依赖各种外挂工具来增强体验。参考下图: 这一节,我们来学习langchain4j 如何让大模型能利用工具外挂增强自身。 假设一个场景:输入1个订单号,让AI回答订单号现在的状态。 AI连是什
阅读全文
posted @ 2025-09-30 14:04
菩提树下的杨过
阅读(47)
推荐(0)
摘要:

接上一篇继续,langchain4j支持open-ai兼容的各种模式,包括deepseek 一、修改pom依赖 1 <!-- LongChain4j OpenAI Integration (支持DeepSeek) --> 2 <dependency> 3 <groupId>dev.langchain
阅读全文
posted @ 2025-09-28 20:08
菩提树下的杨过
阅读(37)
推荐(0)
摘要:

langchain4j是比spring-ai更早出现的大模型相关工程开源框架,社区成熟,活跃度高。下面演示如何用langchain4j调用本地ollama 一、核心pom依赖 1 <!-- LongChain4j Core --> 2 <dependency> 3 <groupId>dev.lang
阅读全文
posted @ 2025-07-20 17:00
菩提树下的杨过
阅读(462)
推荐(0)
摘要:

继续spring-ai学习之旅,大模型本身是无状态的,也就是每次请求对它来说,都是全新的,无记忆!比如:我们以ollama本地加载qwen3:0.6b模型为例,依次问它以下三个问题: 有1个变量A,它的值是5,那么A加1后,变成几? A再乘上3,结果是多少? A再减1,现在是多少? 直接用postm
阅读全文
posted @ 2025-07-20 11:08
菩提树下的杨过
阅读(452)
推荐(0)
摘要:

继续先前的MCP学习,实际企业级应用中,很多信息都是涉及商业敏感数据,需要考虑安全认证,不可能让MCP Server在网上裸奔。spring web开发中,提供了拦截器功能,最简单的思路,在Client连接到Server的sse时,拦截请求,检测http header头中,是否有必要的token信息
阅读全文
posted @ 2025-07-13 12:17
菩提树下的杨过
阅读(531)
推荐(0)
摘要:

继续来学习spring-ai如何实现“文生图” 一、pom依赖 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-model-zhipuai</artifactId>
阅读全文
posted @ 2025-07-12 23:20
菩提树下的杨过
阅读(323)
推荐(0)
摘要:

前面学习了stdio模式的MCP使用,可以看到这种方式局限性比较大,mcp host/mcp client/mcp server通常要在同1台机器上,使用进程间通讯。更常见的做法是,大家各自部署自己的mcp server,就象常规后端http api一样,想部署在哪都行,只要http能访问即可。 一
阅读全文
posted @ 2025-07-12 22:43
菩提树下的杨过
阅读(529)
推荐(0)
摘要:

上一节,通过1个最基本的MCP Server/Client示例,初步了解了MCP的用法.STDIO模式下,client与server同在1台机器上,client会创建1个子进程来启动server,然后使用json rpc来做为约定的消息格式进行通讯。 如果想知道交互过程中的json原文,可以下载 h
阅读全文
posted @ 2025-07-12 16:33
菩提树下的杨过
阅读(404)
推荐(0)
摘要:

使用spring-ai创建1个MCP Server很容易,下面演示MCP(stdio模式)的写法: 一、添加依赖项 1 <dependency> 2 <groupId>org.springframework.ai</groupId> 3 <artifactId>spring-ai-starter-m
阅读全文
posted @ 2025-07-10 19:37
菩提树下的杨过
阅读(406)
推荐(0)
摘要:

上一节学习了spring-ai调用本地ollama,这次继续学习调用远程deepseek 一、pom依赖调整 加入openai的依赖 1 <dependency> 2 <groupId>group.springframework.ai</groupId> 3 <artifactId>spring-a
阅读全文
posted @ 2025-07-10 09:04
菩提树下的杨过
阅读(343)
推荐(0)
摘要:

spring-ai框架为java程序员快速融入AI大潮提供了便利,下面演示如何调用本地deepseek模型 一、安装ollama https://www.ollama.com/ 首页下载安装即可 选择适合的模型,pull到本地,个人电脑建议选择deepseek-r1:7b或1.5b 启动模型 oll
阅读全文
posted @ 2025-07-06 23:07
菩提树下的杨过
阅读(538)
推荐(0)
摘要:

今天尝试用cursor全自助生成了1个spring boot调用ollama(本地模型) +远程deepseek的示例项目。 效果图: .. 主要特性(摘自Readme.md,其实也是 Cursor生成的) 🎯 项目特色 🤖 双AI支持: 同时支持本地Ollama和远程DeepSeek两种AI提
阅读全文
posted @ 2025-06-29 00:04
菩提树下的杨过
阅读(119)
推荐(0)
摘要:

为方便讨论,假设有下面2张订单表:t_order_vip(用于存放VIP的订单),t_order_normal(用于存放普通用户的订单) -- 注:为了演示自定义分片算法而设想的场景,大家不必太纠结其真实性。 分片规则:根据user_id,假设user_id为1,2,3的为VIP用户,其它id为普通
阅读全文
posted @ 2025-04-12 22:47
菩提树下的杨过
阅读(790)
推荐(0)
摘要:

本文用一个订单提交的示例,描述了如何在使用虚拟线程时,合理控制执行的并发数,防止把下游资源打爆
阅读全文
posted @ 2024-11-18 21:02
菩提树下的杨过
阅读(637)
推荐(1)
摘要:

1. cookie有2个版本(version 0与version 1),version 0最早是网景公司定的,比较保守,value值不能有特殊字符,比如 冒号之类的,象 GMT+05:30,在version 0下,取出来,就变成GMT+05,冒号后的:30丢了 2. java中目前支持的是 vers
阅读全文
posted @ 2024-05-17 16:56
菩提树下的杨过
阅读(177)
推荐(0)
摘要:

lua脚本在执行过程中,可动态接收参数,这样可以让系统更灵活,以上节的自动外呼为例,callout.lua改成下面这样: -- 主叫 local callernum = argv[1]; -- 被叫 local calleenum = argv[2]; freeswitch.consoleLog("
阅读全文
posted @ 2024-01-15 09:59
菩提树下的杨过
阅读(566)
推荐(1)
摘要:

相信大家可能接到过一些电话,听上去不象是真人打过来的,比如:通知“您的信用卡到期了”,或者“您订的飞机航班取消了,请尽快改签或取消行程”,这种就是所谓的“自动外呼”系统,技术上讲,可以通过 esl inbound模式实现(注:对esl不熟悉的朋友,戳这里) 大概思路: 先把一些要外呼的任务计划,落地
阅读全文
posted @ 2024-01-13 17:17
菩提树下的杨过
阅读(847)
推荐(0)
摘要:

IVR(Interactive Voice Response)交互式语言应答,是呼叫中心的1个经典应用场景,FreeSwitch官方有一个利用lua实现的简单示例,大致原理是利用lua脚本+TTS实现,记录一下:(环境:FreeSwitch 1.10.11 + Windows 10) 步骤1:安装T
阅读全文
posted @ 2024-01-13 15:32
菩提树下的杨过
阅读(876)
推荐(1)
摘要:

在呼叫中心系统中,有二类特殊的应用场景,即所谓的“群振”(也叫“共振”或“同振”)以及“顺振”。 群振的业务场景: 当客人电话进线时,希望呼叫中心的所有客服都能响应(即:假设呼叫中心有5个客服在接线,客人来电时,这5个客服的电话一起响),任何1个客服都可以接听(注:该客服接起来后,其它客服的分机就不
阅读全文
posted @ 2024-01-07 16:07
菩提树下的杨过
阅读(733)
推荐(0)
摘要:

直接看官网文档 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format SpecifierDescription %a Abbreviated weekday name (
阅读全文
posted @ 2023-11-15 13:35
菩提树下的杨过
阅读(2197)
推荐(0)
摘要:

transformer库是huggingface发布的1个框架,非常好用,很多外行看起来高大上的问题,用它都可以轻松解决,先来看1个小例子: 一、情感分析 from transformers import pipeline classifier = pipeline('sentiment-analy
阅读全文
posted @ 2023-08-20 16:05
菩提树下的杨过
阅读(1481)
推荐(0)
摘要:

text-generation-webui 是一个基于Gradio的LLM Web UI开源项目,可以利用其快速搭建各种文本生成的大模型环境。 一、安装 text-generation-webui的readme其实已写得相当详细了,这里就不再重复,只说1个可能存在的坑: 安装 peft 安装卡住 r
阅读全文
posted @ 2023-08-19 17:51
菩提树下的杨过
阅读(4349)
推荐(0)
摘要:

目前绝大多数LLM模型都是python实现的,运行速度有限(包括ChatGLM2-6b),幸好有大神将其用C++重写了一遍,让运行速度大大提高。 项目地址:li-plus/chatglm.cpp: C++ implementation of ChatGLM-6B & ChatGLM2-6B (git
阅读全文
posted @ 2023-08-12 23:41
菩提树下的杨过
阅读(6307)
推荐(0)
摘要:

对于不想安装windows/linux双系统的朋友来说,WSL2是不错的选择,但在使用过程中可能会遇到一些问题,以下是本人踩过的坑,记录于此: 一、安装前提 1.1 检测windows版本 windows10 版本必须高于 内部版本 19041 ,检测方法 :Ctrl+R,输入winver查看版本(
阅读全文
posted @ 2023-08-12 11:30
菩提树下的杨过
阅读(39780)
推荐(13)
摘要:

清华大学的chatGLM2-6B可以说是目前亚洲唯一能打的对中文支持不错的LLM大模型,网上已经有很多介绍如何在本机搭建环境的文章,就不再重复了,这里记录下最近踩的一些坑: 1、为啥要使用ubuntu? chatGLM2-6b项目里有很多.sh文件,在windows下正常运行通常要折腾一番,最后能不
阅读全文
posted @ 2023-07-30 22:42
菩提树下的杨过
阅读(840)
推荐(1)
摘要:

今天来学习下车床(lathe)建型及粒子系统,babylon.js有一个很强大的函数CreateLathe,可以将一段路径经过旋转后,形成1个shape,这么说有点抽象,比如下面这张图: 其中的关键点坐标为: const fountainProfile = [ new BABYLON.Vector3
阅读全文
posted @ 2023-06-17 23:09
菩提树下的杨过
阅读(448)
推荐(0)
摘要:

最近有1个项目升级到JDK17,里面用到了hbase-client(版本:以1.2.0-cdh5.7.1为基础,公司的大数据同学内部做了一些二次开发 ),启动时发现一直连不上集群,直接报错了,上hbase 官网看了下: 别说JDK 17了,连JDK11都支持不完善,难道把JDK版本又降回去?有点不甘
阅读全文
posted @ 2023-06-17 19:13
菩提树下的杨过
阅读(1074)
推荐(0)
摘要:

背景: 有1个项目,原来是用的mybatis 3.4.6版本,其中有一些插入mapper是这样写的: Integer insertEntitySelectiveShard(@Param("tableSuffix") String tableSuffix,@Param("entity") XXXEnt
阅读全文
posted @ 2023-06-17 15:59
菩提树下的杨过
阅读(801)
推荐(0)
摘要:

接上回继续,做为一个游戏引擎,怎能没有Sprite(精灵)? 下面是基本示例: const createScene = function () { const scene = new BABYLON.Scene(engine); const camera = new BABYLON.ArcRotat
阅读全文
posted @ 2023-06-04 15:39
菩提树下的杨过
阅读(469)
推荐(0)
摘要:

接上回继续,现在的村庄已经有点象样了,但是远处的背景仍比较单调(如下图),今天来学习如何处理天空背景。 babylon.js中,把整个空间假象成一个巨大的立方体(称为SkyBox),然后依次给立方体的6个面,贴上天空的背景图(如下图) 在代码中只要指定这6张图的rootUrl即可,babylon.j
阅读全文
posted @ 2023-06-04 10:55
菩提树下的杨过
阅读(446)
推荐(0)
摘要:

前面我们学习了如何画一堆房子(如下图),显然这单调的绿色大地,看上去效果并不好。 babylon.js中,可以用图片模拟出地势高低不同的效果,比如下面这张图片: 颜色越深的地方,表示地势越低(即:盆地),而颜色越浅的地方,地势越高(即:高山),可以参考下面的代码: const createScene
阅读全文
posted @ 2023-05-28 23:00
菩提树下的杨过
阅读(419)
推荐(0)
摘要:

接上回继续,今天继续捣腾动画,上一节咱们让汽车的轮子动了起来,回顾一下核心代码: //轮子转动 const wheelAnimation = (scene, wheels) => { //定义一个动画,每秒30帧,绕y轴转动 const animWheel = new BABYLON.Animati
阅读全文
posted @ 2023-05-28 15:10
菩提树下的杨过
阅读(555)
推荐(0)
摘要:

前面我们画的小房子,基本上都是用内置的标准形状组合而成,但并非所有对象都这么简单,今天我们来画一个小汽车,汽车由多个零件组成,控制这些零件的缩放、位置、旋转,如果每个都单独用代码来修改position/roration/scaling,未免太复杂,幸好babylon.js中,对象有所谓的child/
阅读全文
posted @ 2023-05-21 22:01
菩提树下的杨过
阅读(433)
推荐(0)
摘要:

按上回继续,上节知道了如何用 『方块+三棱柱+贴图』结合起来,画一个简单的小房子,实际应用中可以把这3个打包在一起,组成1个house对象,这样更方便一些 const buildHouse = () => { const box1 = buildBox(); const roof1 = buildR
阅读全文
posted @ 2023-05-21 16:24
菩提树下的杨过
阅读(420)
推荐(0)
摘要:

一、理解babylon.js 坐标系 const createScene = function () { const scene = new BABYLON.Scene(engine); const camera = new BABYLON.ArcRotateCamera("camera", -Ma
阅读全文
posted @ 2023-05-20 15:23
菩提树下的杨过
阅读(614)
推荐(0)
摘要:

如何在网页中嵌入设计好的模型? 接上回继续,我们设计好精美的模型后,最终总要展示给客户,比如利用playground画了1个方块: const createScene = () => { const scene = new BABYLON.Scene(engine); const camera =
阅读全文
posted @ 2023-05-14 22:53
菩提树下的杨过
阅读(474)
推荐(0)
摘要:

简单来说,babylon.js 是一个能跑在浏览器上的(3D)游戏渲染引擎,而且官方提供了一个友好在线交互学习平台Playground,其开源项目在github上star数截止2023.05.14高达20.6K。下面是官方文档的学习笔记 : 一、hello world 强烈建议新手通过Playgro
阅读全文
posted @ 2023-05-14 15:44
菩提树下的杨过
阅读(656)
推荐(1)
摘要:

自定义java线程池拒绝策略,实现异常情况的监控埋点
阅读全文
posted @ 2023-03-12 16:10
菩提树下的杨过
阅读(1233)
推荐(2)