
【Pipecat】基于Pipecat的voice agent实践
上一篇文章里,我基本介绍了一下 Tana 这个应用和它对我的启发。调研完以后,老板同意让我按照 Tana 的形式,先做个 MVP 出来,再想想怎么把我们的其他模块融入进去。 于是我开始重新规划
Category
39 篇内容归在这个分类下。

上一篇文章里,我基本介绍了一下 Tana 这个应用和它对我的启发。调研完以后,老板同意让我按照 Tana 的形式,先做个 MVP 出来,再想想怎么把我们的其他模块融入进去。 于是我开始重新规划

背景 之前的文章有提到过,我在公司内一直是 Meeting 模块的主要开发。今年由于 AI 的爆发,我也开始转向会议 AI 功能的开发。 一个月以前,老板给我推荐了 Tana,还让我把它作为主题开一场

这篇文章梳理 LLM 推理链路、Transformer 架构、解码策略、训练与应用增强,并修正 attention、mask、LM Head、temperature、KV Cache 等容易混淆的概念。

本人一直在做会议系统相关的内容,但我们自己的会议模块里,之前一直缺少一个比较完整的自动会议纪要能力。这个功能其实并不新。像钉钉、飞书、腾讯会议这类成熟会议产品,早在几年前就已经上线了 AI 会议

前言 最近在刷 LeetCode Hot100,给自己定了一个刷题计划,但是维护刷题计划太麻烦了。 每天刷完题之后,还要: 打开桌面上的 Markdown 进度表,找到对应的题目,填上日期 打开打卡文

本人一直在负责会议模块,而会议中许多的操作都需要使用WebSocket进行广播,比如主持人禁言,用户入会等消息。但是在用户内测的时候,偶尔会发现状态不同步的情况。 主持人发起了一个kr流程,

Pulsar 核心架构特点之一就是计算和存储分离(Broker 负责消息处理,BookKeeper 负责消息存储)。想搞明白 Pulsar 的存储机制,就不得不先了解一下 BookKeeper。

背景 在我们的项目中,业务中常常需要解决定时提醒,定时发布等需求,而我们会常常使用pulsar的定时消息作为我们的定时处理的方案,而pulsar天然支持定时消息的发送。Pulsar 原生支持定时消息发

之前介绍了ZGC,埋了个坑,说是会写分代ZGC,但是因为所在的业务组比较忙,且分代ZGC的相关资料较少,所以就搁置了一段时间,现在有时间了,就继续完成。因为网上的ZGC的资料很少介绍到分代ZGC

这个月,OpenAI举办了其年度开发者大会,由于我们的产品正在逐步使用AI的相关功能,老板很重视这个发布会,让我研究一下此次发布会的两个重点APP SDK和AgentKit,并让我准备一个分享会

这个月,OpenAI举办了其年度开发者大会,由于我们的产品正在逐步使用AI的相关功能,老板很重视这个发布会,让我研究一下此次发布会的两个重点APP SDK和AgentKit,并让我准备一个分享会

最近一次业务中,我们实现了对于分享人的拖拉拽排序,这样用户可以通过前端的拖拉拽,实现会议的自定义人员的分享顺序。 一开始我们的方案是,当排序时,前端将计算的位置计算出来,然后传给后端,后端赋予新

由于公司项目采用JDK 21作为运行环境,我们直接使用了ZGC垃圾收集器。此前我对ZGC的了解仅限于其缩短STW(Stop-The-World)的特性,现在借此机会对其实现原理和核心机制进行系统

公司使用的任务调度框架是Temproal,最近我在业务中使用其作为定时任务,但我发现其不只是作为定时任务的调度,同时也是一个强大的工作流编排框架,所以就来研究一下。 什么是temproal? T

由于需求不断堆积,产品的很多代码都是“补丁”,没有结构,难于维护。所以老板决定利用几个月来让我们重构已有项目的代码,并且规范一下开发流程。这次重构面临着大量的接口文档的修改,我提出了使用yapi

学过Elasticsearch的jy们肯定都听说过倒排索引,我也不例外,但是我总是只知道大概,详细的原理就说不上来了。因为很好奇为什么倒排索引就这么快,遂开始深入理解一下其核心原理。

公司使用的负载均衡框架是HaProxy,我其实还是比较好奇为什么不直接使用nginx的,所以特意来研究并对比一下HaProxy的使用以及原理。

之前所负责的业务要上线,所以最近都没有研究OpenFGA。今天研究了一下OpenFGA的CLI以及模块化模型,所以总结出这篇文章介绍一下用法,并且给出一些常见错误的解决方案。 下载安装CLI 官

在使用OpenFGA做权限系统时,我们发现一个必须要面对的问题——Search With Permissions。 这个问题放到了OpenFGA官方文档的最后一章,也是相当的有复杂度。 问题描述

最近一个非程序员的朋友,在我们的游戏开黑群里发了这样一个网站,说是可以通过IP查看自己下载了哪些东西。 我心里一惊! 啊?这玩意儿这么好用? 我当时很好奇,于是直接访问了这个网站? 得到如下结果

配置Openfga 部署Openfga之前,我们要先去配置数据库,不然的话会默认使用内存作为数据库。 OpenFGA支持多种数据库,如PostgreSQL 14, MySQL 8 和 SQLite。

最近在研究权限系统时,发现一个非常新的概念——ReBAC,同时也深入研究了一下其开源实现框架——OpenFGA。 本文将直接带领大家手把手的使用OpenFGA去实现一个鉴权功能。 本文将直接以飞

最近在研究权限系统,选择了ReBAC作为我们统一业务的权限模型。那么本文着重于研究ReBAC的核心原理,OpenFGA的具体实践,以及为什么没有使用图数据库作为存储。

最近老板让我实现一个可以统一全部业务的权限系统,说实话,一开始我自信满满。但是不断深入研究后,心里就开始慌了,尤其是带入一个业务系统的实际需求,以及构建一个可拓展的一致且准确的授权系统时,就会发

最近老板让我实现一个可以统一全部业务的权限系统,说实话,一开始我自信满满。但是不断深入研究后,心里就开始犯嘀咕了“不是哥们,这么难的东西,你让我一个新入职没多久的人做”。但是毕竟东西都是人做的,

最近在做一个权限系统,接触到了ReBAC的一些框架,如OpenFGA。但是这个项目的中文文档几近于无,翻来翻去就是那么几篇中文的介绍。看着英文的官网,满脑子雾水,虽然也能看懂,但是看的太费劲了(

对于Java21的版本更新,我认为最重要的就是虚拟线程的正式使用(19为预览)。刚看到这个特性时,就感觉和go中的协程很像,应该是差不多的实现方式,也是java在逐渐进化之路上常见的的海纳百川了

本文列举了一些在MongoDB中实现与优化的一些技巧,非常适合学习MongoDB的新手进行学习。此文紧接着上篇【MongoDB应用设计技巧】写的,也是参考了《深入学习MongoDB》并结合一些网

我相信很多新手小白都会在MongoDb的使用过程中,常常纠结如何进行结构定义,比如是选择范式还是反范式,选择子文档还是数组,哪些数据应该嵌入,哪些数据不该嵌入。 最近看了一本书——《深入学习Mo

前言 大家好哇,我又来了。 最近在工作中接触到了一个开源的内存队列框架--disruptor,所以闲下来就研究一下。发现这个东西非常适合于生产者消费者模型,所以深入研究一下其原理,此篇算是比较清晰易懂

前言 最近想了解一下 Mongo 的事务实现,发现和 Mysql 的实现机制很像,所以对比着 Mysql 的 InnodDb 来比较并总结 Mongo 的WT 引擎事务实现方式。 事务的ACID 原子

前言 相信不少 javaer 都知道这一句话:“版本任你发,我用 java8”。确实,对于一般的项目来说 java8 已经够用,而且稳定性以及框架组件的支持都已经很好了。但是对于当前不断革新的技术来说

前言 相信不少 javaer 都知道这一句话:“版本任你发,我用 java8”。确实,对于一般的项目来说 java8 已经够用,而且稳定性以及框架组件的支持都已经很好了。但是对于当前不断革新的技术来说

前言 日常开发中经常遇到一个业务发生之后需要触发好几个业务点,比如订单支付完成之后需要发送短信、送会员积分、发送优惠券等。在分布式系统中我们可以通过消息队列实现,各个系统之间订阅支付成功事件,然后实现

背景 最近入职了一家新公司,有一道题需要使用redis-lock解决分布式并发问题,所以这篇文章主要研究一下redis-lock是如何实现的。 首先,题目以及解析如下: 源码解读 tryLock源码

主管让我做一个实时推送的需求,我直接汗如雨下,赶快到网上搜索相关内容。 实时推送?那最基本的就是websocket啦!

本文还是从语法到实践都过一遍。后面可能还有一篇文章用于深入了解shell的一些原理,以及如何快速写出我们想要的脚本。

本文用于配置shell远程连接 Ubuntu虚拟机。写这篇文章的的目的是 之前一直用的是CentOs,现在更换了Ubuntu,所以部分配置可能不一样。

本文将从helloworld案例开始,逐步介绍shell的语法,并且附上案例,也包括其他的一些知识点。分支循环以及函数部分将在后面篇章介绍。