上一页 1 2 3 4 5 6 ··· 17 下一页

golang select 的 case 执行顺序

摘要: 问题: golang select 结构,假如底下有三个case,分别从 chan1, chan2, chan3 读取内容,chan1, chan2, chan3都是非阻塞的,那么是会先进入第一个 case,其它case还会再进入吗 ? 在 Go 语言中,select 语句用于监控多个通道的操作,并 阅读全文
posted @ 2024-06-06 22:06 ercom 阅读(113) 评论(0) 推荐(0) 编辑

golang interface 和 struct 添加方法的区别

摘要: 在 Go 语言中,struct 和 interface 都可以关联方法,但它们的方式不同: 1. struct 添加方法: 结构体(struct)本身不直接包含方法,但可以通过定义一个指向该结构体类型的指针作为接收者的函数来为结构体“添加”方法。 type MyStruct struct { // 阅读全文
posted @ 2024-06-06 21:57 ercom 阅读(103) 评论(0) 推荐(0) 编辑

golang 可变参数用法, handlers ...HandlerFunc

摘要: handlers ...HandlerFunc 这是什么写法,与 group.handle() 第三个参数是 []handlerFunc 是什么关系呢? 下面是 gin 中的用法: routergroup.go // GET is a shortcut for router.Handle("GET" 阅读全文
posted @ 2024-06-05 21:00 ercom 阅读(30) 评论(0) 推荐(0) 编辑

http1.1 的默认长连接 Connection: keep-alive 与 TCP KeepAlive 之间区别

摘要: HTTP 长连接,也称为 HTTP 持久连接(HTTP Persistent Connection)或 HTTP 连接重用,是一种在 HTTP 协议中实现的机制。 在传统的 HTTP 通信中,每个 HTTP 请求和响应都会伴随着 TCP 连接的建立和关闭,这在高并发场景下会增加网络开销和延迟。 而 阅读全文
posted @ 2024-06-05 20:35 ercom 阅读(806) 评论(0) 推荐(0) 编辑

golang net/http 的 ListenAndServe 的工作方式(取代 listen、accept)

摘要: 在Go的 net/http 包中,当你使用 ListenAndServe 或 ListenAndServeTLS 函数启动一个HTTP服务器时, 你不需要直接调用 listen 和 accept 操作,因为这些函数已经为你处理了这些底层的网络细节。 ListenAndServe 函数的工作方式如下: 阅读全文
posted @ 2024-06-04 20:11 ercom 阅读(113) 评论(0) 推荐(0) 编辑

tcp server 为什么需要 accept

摘要: 在TCP协议中,服务器端建立连接的过程分为几个步骤,其中accept操作起到了关键作用,具体原因包括: 1. 连接管理:当一个TCP客户端发起连接请求时,它会向服务器发送一个SYN(同步)包,开始三次握手过程。 服务器通过监听 socket 接收到这个SYN包后,会回复一个SYN-ACK(同步-确认 阅读全文
posted @ 2024-06-04 20:05 ercom 阅读(43) 评论(0) 推荐(0) 编辑

golang 的 net/http 和 net/rpc 的区别, rpc 效率比 http 高?

摘要: 在Go语言中,net/http 和 net/rpc 是两个不同的包,它们分别用于实现不同的网络通信模式: net/http: net/http 包主要用于构建Web服务和客户端,它实现了HTTP协议,这是互联网上最广泛使用的应用层协议之一,主要用于传输超文本(HTML)和其他资源。 HTTP 协议是 阅读全文
posted @ 2024-06-04 19:57 ercom 阅读(261) 评论(0) 推荐(1) 编辑

[FAQ] unix, unixpacket 属于传输层吗

摘要: unix 和 unixpacket(也称作Unix域套接字)并不属于TCP/IP模型中的传输层。 它们是操作系统提供的另一种通信机制,主要用于在同一台机器上的进程间通信(IPC,Inter-Process Communication)。 Unix域套接字可以看作是文件系统中的一个特殊文件,具有以下两 阅读全文
posted @ 2024-05-30 21:35 ercom 阅读(23) 评论(0) 推荐(0) 编辑

golang import 导入的四种方式

摘要: 1 标准导入: import "package_name" 2 导入别名: import ( alias "package_name" ) 3 匿名导入: import ( _ "package_name" ) 4 点导入: import ( . "package_name" ) 下面做详细解释: 阅读全文
posted @ 2024-05-30 21:29 ercom 阅读(318) 评论(0) 推荐(0) 编辑

golang errgroup 的超时检测

摘要: > golang errgroup 的作用. errgroup 的超时检测通常是一种事后得到结果的方式。 errgroup本身并不直接支持超时控制,而是依赖于与之关联的context.Context来实现超时和取消功能。 当context超时时,它会关闭Done通道,这将通知errgroup中的协程 阅读全文
posted @ 2024-05-29 21:02 ercom 阅读(48) 评论(0) 推荐(0) 编辑

golang errgroup 的作用

摘要: errgroup 是 Go 中用于并发控制和错误处理的一个工具,提供了一种方便的方式来协调多个goroutine。 它允许你在一个组中运行多个goroutine,并等待它们全部完成,同时收集和返回第一个发生的错误。 它的主要作用包括: 同步: errgroup.Group 提供了一个 Wait 方法 阅读全文
posted @ 2024-05-29 20:59 ercom 阅读(94) 评论(0) 推荐(0) 编辑

golang的 CGO 是什么

摘要: CGO是Go(Golang)语言中的一个工具,全称为 "C-Go" 或者 "C for Go"。 它是Go标准库的一部分,允许Go代码与C语言代码进行交互。 CGO提供了在Go程序中使用C语言库的能力,同时也允许C代码调用Go的函数。 通过CGO,开发者可以利用Go语言的强类型和垃圾回收等特性,同时 阅读全文
posted @ 2024-05-27 23:03 ercom 阅读(486) 评论(0) 推荐(0) 编辑

golang的交叉编译是什么

摘要: Go(Golang)的交叉编译是指在一种硬件架构或操作系统环境下,使用Go编译器生成适用于另一种架构或操作系统的可执行程序。 Go语言的设计使得交叉编译变得非常简单和高效,它允许开发者在开发环境中构建目标平台上的代码,而无需在目标平台上实际运行编译过程。 在Go中,交叉编译主要涉及到设置两个环境变量 阅读全文
posted @ 2024-05-27 23:00 ercom 阅读(106) 评论(0) 推荐(0) 编辑

golang为什么chan大部分是发送结构体,而不是其它比如string

摘要: type token struct{} type Group struct { cancel func(error) wg sync.WaitGroup sem chan token errOnce sync.Once err error } func (g *Group) done() { if 阅读全文
posted @ 2024-05-27 22:56 ercom 阅读(33) 评论(0) 推荐(0) 编辑

golang 的学习曲线

摘要: Go(Golang)语言的设计目标之一就是让其学习曲线尽可能平缓,这意味着对于大多数开发者来说,学习Go语言比许多其他现代编程语言可能更快上手。以下是通常Golang学习曲线的一个概述: 1 入门阶段: 基本语法:Go语言的语法相对简单,与C/C++和Java有一定的相似性,所以对于有这些背景的开发 阅读全文
posted @ 2024-05-23 19:06 ercom 阅读(63) 评论(0) 推荐(0) 编辑

Gin 框架的执行流程

摘要: Gin框架是一个用Go语言编写的高性能Web框架,它基于httprouter实现,具有快速、简洁和高效的特性。 以下是Gin框架处理HTTP请求的大致执行流程: 1 初始化Gin引擎: 用户创建一个新的gin.Engine实例,这通常是应用程序的主路由器。 用户定义路由,这些路由是通过engine. 阅读全文
posted @ 2024-05-23 18:59 ercom 阅读(79) 评论(0) 推荐(0) 编辑

Gin context 功能分类(context.go)

摘要: CONTEXT CREATION FLOW CONTROL ERROR MANAGEMENT METADATA MANAGEMENT INPUT DATA RESPONSE RENDERING CONTENT NEGOTIATION GOLANG.ORG/X/NET/CONTEXT 在线 IPFS 阅读全文
posted @ 2024-05-23 18:54 ercom 阅读(5) 评论(0) 推荐(0) 编辑

开发浏览器extension和开发油猴脚本的区别,全方位对比

摘要: 开发浏览器Extension(扩展)和油猴脚本(通常指的是Tampermonkey这样的用户脚本管理器)虽然都可以增强浏览器功能,但它们在多个方面存在显著的差异。 以下是全方位的对比: 1 覆盖范围: 浏览器扩展:通常提供全局性的增强,影响整个浏览器或特定类型的网页,可以修改浏览器界面、提供新的功能 阅读全文
posted @ 2024-05-22 20:17 ercom 阅读(240) 评论(0) 推荐(0) 编辑

Gin 框架是怎么使用 net http 包的(gin.go)

摘要: Gin 框架是基于 Go 语言的标准库 net/http 构建的,它使用 net/http 提供的基础功能来构建自己的高性能 Web 应用框架。 具体来说,Gin 使用 net/http 的以下方面: 1,HandlerFunc: Gin 使用 net/http 的 HandlerFunc 类型,这 阅读全文
posted @ 2024-05-22 20:12 ercom 阅读(177) 评论(0) 推荐(0) 编辑

golang select 和外层的 for 搭配

摘要: select语句通常与for循环搭配使用,但并不是必须的。 在某些情况下,select可能会直接放在一个独立的goroutine中,没有外层的for循环。 这通常发生在你知道只会有一次或有限次操作的情况下。 例如,你可能有一个简单的goroutine,它等待一个特定的channel信号,然后执行一次 阅读全文
posted @ 2024-05-21 22:52 ercom 阅读(302) 评论(1) 推荐(1) 编辑

golang 类型断言和 var _ T = expression 写法

摘要: 类型断言(Type Assertion)在Go语言中用于检查一个接口值的具体类型,并从中获取该类型的值。 它允许你声明并访问接口变量内部存储的非接口类型的值。有两种主要的类型断言形式: value, ok := i.(T):这种形式会检查接口 i 是否持有类型 T 的值。如果成功,value 将是 阅读全文
posted @ 2024-05-21 22:45 ercom 阅读(24) 评论(0) 推荐(0) 编辑

数据库触发器、存储过程、视图、约束

摘要: 【触发器】 MySQL中的触发器(Trigger)是一种数据库对象,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后,自动执行预定义的SQL语句或一系列操作。触发器主要用于增强数据库的逻辑控制,确保数据的完整性和一致性,以及执行一些附加的任务,如审计、日志记录或验 阅读全文
posted @ 2024-05-21 22:40 ercom 阅读(60) 评论(0) 推荐(0) 编辑

Ollama的常见问题解答(FAQ)

摘要: 1 如何更新Ollama? 在macOS和Windows上,Ollama会自动检查更新。只需点击任务栏或菜单栏图标,然后选择“重启以更新”来应用新版本。 在Linux上,需要重新运行安装脚本来升级。 2 如何查看日志? 查阅特定的故障排查文档来了解如何查看和使用日志。 3 我的GPU是否兼容Olla 阅读全文
posted @ 2024-05-16 22:43 ercom 阅读(3664) 评论(0) 推荐(1) 编辑

Ollama 源代码中值得阅读的部分

摘要: 阅读 Ollama 源代码以了解其内部工作机制、扩展功能或参与贡献。 以下是一些值得重点关注的部分: 1. 核心服务模块: 查找负责启动和管理模型服务的主程序或类,这通常是整个项目的核心逻辑所在。关注如何初始化模型环境、加载模型权重、配置服务器端口和通信协议等关键步骤。 2. 模型加载与推理逻辑: 阅读全文
posted @ 2024-05-16 22:37 ercom 阅读(678) 评论(0) 推荐(1) 编辑

golang context 特点,和自己定义分类有什么区分

摘要: context 包的特点包括: 1 信号传递: 取消信号:context 提供了一个取消机制,允许一个父级 goroutine 在必要的时候通知其子级 goroutines 任务应该停止执行。 截止时间:可以设置一个截止时间,当超过这个时间时,上下文自动变为取消状态。 超时:类似截止时间,但通常基于 阅读全文
posted @ 2024-05-16 22:23 ercom 阅读(9) 评论(0) 推荐(0) 编辑

GGUF构建ollama模型, 模型怎么量化成GGUF格式

摘要: GGUF构建ollama模型https://zhuanlan.zhihu.com/p/689555159https://www.cnblogs.com/ghj1976/p/18063781/ollama-yun-xing-gguf-mo-xing 模型怎么量化成GGUF格式https://zhuan 阅读全文
posted @ 2024-05-16 22:20 ercom 阅读(126) 评论(0) 推荐(0) 编辑

Ollama开发指南

摘要: 前奏:Ollama是什么,为什么这么好用 安装必备工具 确保已安装以下软件的正确版本: CMake 3.24 或更高版本 Go 1.22 或更高版本 GCC 11.4.0 或更高版本 使用 Homebrew 安装这些工具(适用于macOS和Linux): brew install go cmake 阅读全文
posted @ 2024-04-28 23:41 ercom 阅读(549) 评论(0) 推荐(1) 编辑

go generate ./... 含义

摘要: go generate ./... 是一个Go语言中的命令,用于在编译前自动执行代码生成任务。 这个命令会遍历当前包及其子包中的所有源代码文件,查找所有包含特殊注释 //go:generate 的行。 这些注释后面跟着的是应该执行的命令,用于生成额外的源代码、元数据或其他编译时所需的文件。 执行 g 阅读全文
posted @ 2024-04-28 23:22 ercom 阅读(106) 评论(0) 推荐(0) 编辑

cmake 的 -S -B -D 分别是什么意思

摘要: 在 CMake 中,命令行参数 -S、-B 和 -D 分别代表以下含义: -S <path> 或 --source <path>: 指定项目的源代码目录。这个路径应该是包含 CMakeLists.txt 文件的目录。 -B <path> 或 --build <path>: 指定构建目录,也就是生成的 阅读全文
posted @ 2024-04-28 23:13 ercom 阅读(2063) 评论(0) 推荐(0) 编辑

git submodule 命令用法及含义

摘要: git submodule init 命令的作用是初始化Git仓库中的子模块。当一个Git仓库包含其他Git仓库作为子模块时,首次克隆这样的仓库并不会自动下载子模块的内容。执行 `git submodule init` 会进入子模块目录,读取 .gitmodules 配置文件,然后设置本地的远程仓库 阅读全文
posted @ 2024-04-28 23:05 ercom 阅读(355) 评论(0) 推荐(0) 编辑

rerank来提升RAG的准确度的策略

摘要: RAG(Retrieval-Augmented Generation)是一种结合检索和生成两种技术的模型,旨在通过检索大规模知识库来增强文本生成任务的准确性。 要通过reranking(重排序)来提升RAG的准确度,可以采取以下策略: 1. 使用更精细的评分函数 RAG通常会在检索阶段根据输入问题或 阅读全文
posted @ 2024-04-24 22:05 ercom 阅读(538) 评论(0) 推荐(0) 编辑

Ollama是什么,为什么这么好用

摘要: Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 以下是其主要特点和功能概述: 1. 简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。 2. 轻量级与可扩展:作为轻量级框架 阅读全文
posted @ 2024-04-24 22:00 ercom 阅读(6701) 评论(0) 推荐(1) 编辑

LlamaIndex 常见问题解答(FAQ)

摘要: 提示:如果您尚未完成,请安装 LlamaIndex 并完成起步教程。遇到不熟悉的术语时,请参考高层次概念部分。 在这个章节中,我们将从您为起步示例编写的代码开始,展示您可能希望针对不同应用场景对其进行的常见定制方法: python from llama_index.core import Vecto 阅读全文
posted @ 2024-04-14 23:04 ercom 阅读(380) 评论(0) 推荐(0) 编辑

LlamaIndex 探索视频系列

摘要: 如果您喜欢通过视频学习,现在正是查看我们的“探索 LlamaIndex”系列的好时机。否则,我们建议您继续阅读“理解 LlamaIndex”教程。 自下而上开发(Llama Docs Bot) 这是“探索 LlamaIndex”系列中的一个子系列,向您展示如何从零开始构建文档聊天机器人。 我们将以“ 阅读全文
posted @ 2024-04-14 23:03 ercom 阅读(45) 评论(0) 推荐(0) 编辑

LlamaIndex 起步教程(本地模型)

摘要: 提示:确保您已先按照自定义安装步骤操作。 这是一个著名的“五行代码”起步示例,使用本地 LLM(大语言模型)和嵌入模型。我们将使用 BAAI/bge-small-en-v1.5 作为嵌入模型,通过 Ollama 服务的 Mistral-7B 作为 LLM。 下载数据 本示例使用 Paul Graha 阅读全文
posted @ 2024-04-14 23:03 ercom 阅读(1537) 评论(0) 推荐(0) 编辑

LlamaIndex 安装与配置(不含OpenAI)

摘要: pip install llama-index 这是一个包含以下组件的启动包: llama-index-core llama-index-legacy (暂时包含) llama-index-llms-openai llama-index-embeddings-openai llama-index-p 阅读全文
posted @ 2024-04-14 23:02 ercom 阅读(791) 评论(0) 推荐(0) 编辑

LlamaIndex 是什么

摘要: LlamaIndex 是一个基于 LLM(大语言模型)的应用程序数据框架,适用于受益于上下文增强的场景。 这类 LLM 系统被称为 RAG(检索增强生成)系统。 LlamaIndex 提供了必要的抽象层,以便更容易地摄取、结构化和访问私有或特定领域的数据,从而安全可靠地将这些数据注入 LLM 中,以 阅读全文
posted @ 2024-04-14 23:01 ercom 阅读(1393) 评论(0) 推荐(0) 编辑

LlamaIndex 高层次概念

摘要: 本篇内容为您快速介绍在构建基于大型语言模型(LLM)的应用程序时会频繁遇到的一些核心概念。 增强检索生成(RAG) LLM 是基于海量数据训练而成,但并未涵盖您的具体数据。增强检索生成(Retrieval-Augmented Generation, RAG)通过将您的数据添加至 LLM 已有的数据集 阅读全文
posted @ 2024-04-14 23:01 ercom 阅读(112) 评论(0) 推荐(0) 编辑

RAG 工具和框架介绍: Haystack、 LangChain 和 LlamaIndex

摘要: Haystack、 LangChain 和 LlamaIndex,以及这些工具是如何让我们轻松地构建 RAG 应用程序的? 我们将重点关注以下内容: Haystack LangChain LlamaIndex 增强LLM 那么,为什么会有这些工具存在呢?如你所知,ChatGPT和其他LLM是在某个时 阅读全文
posted @ 2024-04-14 22:53 ercom 阅读(459) 评论(0) 推荐(0) 编辑

Docker Desktop v20.10.8 和 WSL2 迁移镜像存储目录

摘要: 只迁移存储镜像和挂载文件目录:https://www.cnblogs.com/lemonK/p/17781775.html 同时迁移docker程序目录、更改镜像默认位置:https://www.cnblogs.com/kkbk/p/17702465.html OnlineTool Link:htt 阅读全文
posted @ 2024-04-11 12:31 ercom 阅读(16) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 17 下一页