
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Go语言在处理并发问题上相比较其他语言具有优势,这背后离不开go runtime的运行机制。Go 并没有绕开操作系统,代码程序最终仍要借助操作系统线程在CPU上执行,内存也仍然来自操作系统。Go是在语言代码与操作系统之间增加一层runtime,由它统一管理并发任务和内存生命周期。本文针对Go 运行时如何管理 goroutine和内存为主线,给大家讲解一下go语言的GMP 调度模型与 GC 垃圾回收

上一篇文章主要围绕 RAG 展开,从 ChatModel、Prompt、Embedding、Indexer、Retriever、Transformer 这些组件入手,理解了一个最小 RAG 系统是怎么把外部知识交给大模型使用的。继续往后学习 Eino 时,会发现只会调用模型还不够。真实的人工智能应用通常不是一个简单的“输入问题 -> 模型回答”流程,而是需要把多个步骤组织起来:有些任务要按顺序执行

Ollama 可以理解成一个本地大模型运行平台,把已经训练好的模型下载到电脑上,然后在本机运行起来,我们可以直接调用。Ollama 会负责下载模型、加载模型、启动推理服务,并在本地提供 API。

最近在学习Eino这类 AI 应用开发框架, 刚开始只是跑一些简单 demo,比如调用大模型、流式输出、使用Prompt模板。往后学习自然接触到Embedding、Indexer、Retriever、Transform这些概念。这些组件单独看都不复杂,但如果把它们串起来,其实就是一个最小RAG应用的核心流程。这篇文章不是从理论角度完整介绍RAG,而是基于我学习Eino的几个小demo,回顾一下自己

聊起高性能 Web 服务器,Nginx 几乎是绕不开的骨干。最近我们帮学院部署开发项目学习到了Nginx的使用, 既然要实战部署,那咱们就以最经典的 Vue 3 + Golang (Gin) 架构为例。这种架构下,Nginx 不再单单只是一个工具,而是连接前后端的核心管家。Nginx的主要作用有三个: 1. 充当web服务器2. 反向代理3. 负载均衡。

其实我们可以完全不用ServerMux,因为 http.ListenAndServe()的第二个参数就是Handler,可以传入任意实现ServerHTTP的对象,包括自定义路由器。w.Write([]byte("用户列表..."))} else {// 启动。

这周在对终端网络聊天室项目进行实现异步消息队列功能的时候,要利用到redis来实现消息持久化。针对实现消息对列功能redis提供的类型有列表List,发布订阅PubSub以及stream流, 其中List结构也可以作为一个消息队列来实现数据持久化,但是存在消息丢失,只支持单消费者模式等缺陷;而PubSub虽然采用发布订阅模式,支持多生产多消费模型,却不支持数据持久化,同时也无法避免消息丢失和队列溢








