avatar
Articles
33
Tags
4
Categories
0
Home
Archives
About
Link
fengye's blog
Search
Home
Archives
About
Link

fengye's blog

GitHub Profile 自动同步实践
Created2026-03-07|Updated2026-03-07
GitHub Profile 自动同步实践 本文由 AI 参与创作 前言最近我把 GitHub Profile 做了一轮比较彻底的整理,目标不是“好看”,而是“真实、可维护、可自动更新”。 我之前的 Profile 有几个典型问题: 项目描述和仓库现状有偏差。 统计图依赖第三方外链,偶发加载失败。 内容更新靠手工维护,时间久了肯定过期。 这篇文章把这次改造的完整方案记录下来,后续我也会持续基于这个方案做迭代。 这次改造我做了什么围绕 github-profile 仓库,这次我实际完成了这些工作: 基于 GitHub API 拉取真实仓库信息(非 fork、活跃时间、stars/forks、主语言),重写了 Profile 的项目展示。 新增双语 Profile(README.md + README.zh-CN.md)。 新增自动同步脚本:scripts/sync_profile_readme.py。 新增 GitHub Actions:.github/workflows/sync-profile.yml,支持手动触发 + 定时触发。 增加 AI 声明:明确标注...
ADK-Java-SDK 自定义模型服务
Created2025-12-14|Updated2025-12-15
ADK-Java-SDK 自定义模型服务 本文由 AI 参与创作 最近在做 Agent 构建相关的工作,而在 Agent 构建这个领域,Google 的 ADK 算是业界标杆之一。最近在学习 ADK 过程中发现,ADK 的 Python SDK 提供了 LiteLLM 快速接入第三方供应商的模型参考: https://adk.wiki/agents/models/#using-open-local-models-via-litellm ,但是 Java SDK 并未提供这样快速接入的能力,于是记录下我在 ADK Java SDK 中 proxy 第三方供应商模型的例子,以供参考。 ADK Java SDK 模型扩展机制ADK Java SDK 通过 BaseLlm 抽象类提供了模型扩展能力。要接入第三方模型服务商,只需继承该类并实现核心方法即可。 BaseLlm 核心接口12345678910public abstract class BaseLlm { // 模型名称 protected final String model; //...
如何将不兼容OpenAI规范的大模型API封装为SpringAI API--以DashScope为例
Created2025-06-02|Updated2025-12-14
如何将不兼容OpenAI规范的大模型API封装为SpringAI API–以DashScope为例 引言: 在实际开发中,我们经常需要调用不同的大模型 API,而 Spring AI 提供了统一接口来简化这一过程。然而,Spring AI 并未直接支持所有模型提供方(如百炼 DashScope)。本文通过实现 ChatModel 接口,演示如何将任意大模型 API(以百炼为例)封装为 Spring AI 可用的模型,从而实现灵活切换和功能扩展。 最近项目开发中经常用到 Spring AI,作为 Spring 全家桶的一员,它为 AI 生态封装了一套统一、易用的 API 规范,可以很方便地实现工具调用等特性。 同时 Spring AI 适配了一些模型提供方的 API,你可以在 spring application 配置文件中配置 url + api key 做到开箱即用。 但是美中不足的是,Spring AI...
大模型学习笔记
Created2025-03-23|Updated2025-06-07
LLM学习笔记Embeddinghttps://www.julyedu.com/question/big/kp_id/30/ques_id/2968 https://projector.tensorflow.org/ 在人工智能领域,Embedding(嵌入)是一种将离散对象(如单词、类别、图像等)转换为连续向量表示的技术。这些向量会在低维空间中,并且能够体现出对象之间的语义关系。Embedding 本质上是一种映射,把高维空间中稀疏、离散的数据点映射到低维的连续向量空间。在这个新的空间里,相似的对象在空间中的距离会更近,不同的对象距离则更远。 文本中的每个单词会用独热编码(One-Hot Encoding)表示。不过,这种编码方式会导致向量维度非常高且稀疏。而词嵌入会把每个单词映射到一个低维的连续向量,例如 100 维或者 300 维。这些向量是通过神经网络训练得到的,训练目标是让在语义上相近的单词在向量空间中的距离也相近。
MCP深度解析
Created2025-03-21|Updated2025-06-07
MCP深度解析前言MCP
虚拟线程(有栈协程)对于Java的意义
Created2025-01-06|Updated2025-01-23
虚拟线程(有栈协程)对于Java的意义1.传统同步线程模型在传统的 servlet 生态中,线程模型一般是 thread per request,即每个请求分配一个线程,这个线程负责整个请求的生命周期。 有个很直观的理解:ThreadLocal–在一次请求过程中,可以在请求上游往 ThreadLocal set 一些数据,比如可以存 userId、trace 等;在请求下游时直接调用 threadLocal.get() 即可获取。 在这种线程模型中,想要承载更多请求,就需要添加更多线程。更多的线程意味着带来更多的资源占用: 一个 Java 线程的线程栈大小通常为 1MB,这意味着如果需要同时处理 1000 个并发连接,光线程栈的内存占用就有 1000 MB。 Java 平台线程本质上是由 JVM 映射到操作系统的内核线程,如果并发请求数量增多,内核线程就需要同样增加。 每个内核线程需要由操作系统分配线程控制块, 过多的内核线程会导致频繁的线程上下文切换,如果存在阻塞的 IO...
OSPP参与记录
Created2024-09-29|Updated2025-01-11
前言今年毕业前申请参与了2024年的开源之夏(OSPP),是一次很宝贵的开源项目经验,最终成功结项。写这篇博客以此记录留存。 本博客记录的内容截至日期为 2024:09:30,最终方案相比本文有变动,例如放弃 jprotobuf 方案、重构 Grpc 调用模块等。具体详见:https://github.com/alibaba/arthas/pull/2914 项目申请书项目名称:探索 Java 低资源消耗的 gRPC 实现 项目主导师:断岭 申请人:风业 日期:2024.06.03 邮箱:1129126684@qq.com 项目背景Arthas 是一个 Java 诊断工具,它允许开发人员在无需修改应用程序代码的情况下,动态地监视和解决生产环境中 Java 应用程序的问题。目前 Arthas 主要是通过交互式的命令行提供服务,此外也提供了 http api。但是 http api 比较简陋,预期通过grpc server提供服务。但是官方的 grpc 实现依赖多、运行时内存占用高,本项目旨在提供一种低资源消耗的 grpc 实现,需要支持 stream...
部署Grafana+Prometheus+Exporter
Created2023-04-28|Updated2025-01-11
Grafana1docker run -d --name=grafana --network host grafana/grafana-enterprise Prometheus下载并解压 123wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gztar xvfz prometheus-*.tar.gz 给 prometheus 配置 systemd 启动,默认运行端口为 9090 12345678910111213141516171819202122vim /usr/lib/systemd/system/prometheus.service[Unit]Description=prometheus[Service]WorkingDirectory=/home/fengye/prometheus/prometheus-2.42.0.linux-amd64#...
类加载机制
Created2023-01-29|Updated2025-01-11
前言Java为了做到“一次编写,到处运行”,发布了运行在不同平台上的JVM,所有平台上的JVM都支持统一的程序存储格式————字节码(ByteCode),而存储字节码的二进制文件被称为Class文件。 对于JVM来说,不管是什么语言,只要能编译成Class文件,就可以在JVM中运行。换句话说,JVM不与任何语言绑定,而是与Class文件绑定。 任何一个Class文件都对应一个唯一的类或者接口,但是类或接口不一定定义在文件中(例如可以动态生成)。 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 类文件结构在学习类加载之前,需要先了解Class文件的结构。 首先给出一个简单的代码样例: 12345678public class TestClass{ private int m; public int inc(){ return m + 1; }} 使用 javac...
Redis笔记
Created2023-01-24|Updated2025-01-11
前言学习后端开发这么久,Redis 是我常用的一个中间件,以往主要是用于做缓存处理和暂存一些值。但用了这么多,却并没有深入地了解过 Redis 底层,并且平时的使用也大多都是通过 SpringData 封装的 RedisTemplate,连 Redis 本身的命令也几乎要忘掉了。因此打算写一篇总结性的博客,包括Redis的基础 + Redis底层 + Redis进阶使用。 Redis基础基础指令操作数据库相关指令 启动 Redis 客户端: redis-cli -h host -p port -a password 切换当前数据库: select 数据库index(0-15) 清空当前的库: FLUSHDB ;清空所有库: FLUSHALL 动态调整 Redis 的配置而不用重启(重启失效):CONFIG SET ... 操作数据类型相关指令StringString 是 Redis 中最简单的存储类型,一个 key 对应一个 value。其 value 是字符串(可以细分为字符串、整数、浮点数)。value 最大值不能超过512mb。 命令 说明 SET key...
12…4
avatar
风业
fengye's blog
Articles
33
Tags
4
Categories
0
Follow Me
Announcement
my new hexo blog
Recent Posts
GitHub Profile 自动同步实践2026-03-07
ADK-Java-SDK 自定义模型服务2025-12-14
如何将不兼容OpenAI规范的大模型API封装为SpringAI API--以DashScope为例2025-06-02
大模型学习笔记2025-03-23
MCP深度解析2025-03-21
Tags
GitHub Actions AI GitHub 自动化
Archives
  • March 2026 1
  • December 2025 1
  • June 2025 1
  • March 2025 2
  • January 2025 1
  • September 2024 1
  • April 2023 1
  • January 2023 4
Website Info
Article Count :
33
Runtime :
Total Word Count :
153.4k
Unique Visitors :
Page Views :
Last Update :
©2024 - 2026 By 风业
Framework Hexo|Theme Butterfly
Search
Loading Database