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

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

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

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

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

tcp server 为什么需要 accept

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

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

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

golang errgroup 的超时检测

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

golang errgroup 的作用

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

golang的交叉编译是什么

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

golang 的学习曲线

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

Gin 框架的执行流程

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

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

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

golang select 和外层的 for 搭配

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

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

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

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

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

Ollama的常见问题解答(FAQ)

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

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

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

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

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

go generate ./... 含义

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

git submodule 命令用法及含义

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

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

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

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

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

LlamaIndex 常见问题解答(FAQ)

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

LlamaIndex 探索视频系列

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

LlamaIndex 起步教程(本地模型)

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

LlamaIndex 高层次概念

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

LlamaIndex 是什么

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

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

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

embedding models 是什么

摘要: embedding models 是一类机器学习模型,它们的核心功能是将高维、离散的输入数据(如词汇、类别标签、节点或实体)映射到低维、连续的向量空间中。 这些向量(即 embeddings)通常具有丰富的语义信息,并能够捕捉原始数据之间的潜在关系和相似度。以下是对 embedding models 阅读全文
posted @ 2024-04-10 19:19 ercom 阅读(154) 评论(0) 推荐(0) 编辑

大模型 RAG 是什么

摘要: 大模型 RAG(Retrieval-Augmented Generation)是一种结合了检索(Retrieval)与生成(Generation)能力的先进人工智能技术,主要用于增强大型语言模型(LLMs,Large Language Models)在特定任务中的表现,特别是那些需要访问外部知识库或 阅读全文
posted @ 2024-04-10 19:17 ercom 阅读(857) 评论(0) 推荐(0) 编辑

通用的 AI prompt 实操技巧

摘要: 1. 提供清晰、具体的目标在 Prompt 中明确指出你希望 AI 辅助完成的具体任务,包括要实现的功能、遵循的标准、适用的技术栈等。 2. 提供足够的上下文提供与任务相关的背景信息、现有代码片段、接口文档、数据结构等,帮助 AI 更好地理解你的意图。 3. **使用结构化和层次化的提示**将复杂的 阅读全文
posted @ 2024-04-10 19:16 ercom 阅读(52) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 17 下一页