rag_knowledge_go部署到云服务器上
Go 项目云服务器部署:从交叉编译到服务运行1. 前言Go 项目开发完成后,需要部署到 Linux 云服务器运行。 相比其他语言,Go 具有较好的部署优势: 支持交叉编译,可以在 Windows 环境生成 Linux 可执行文件 编译后生成单个二进制文件 不依赖额外运行环境,上传即可运行 本文记录我的 RAG 知识库项目从本地开发到 Linux 云服务器部署的完整流程。 2. Go 项目交叉编译由于本地开发环境为 Windows,而云服务器通常为 Linux,因此需要进行交叉编译。 编译命令(这个就在vscode里面的终端就行了)Windows PowerShell: 12345$env:CGO_ENABLED=0$env:GOOS="linux"$env:GOARCH="amd64"go build -o rag main.go 参数说明: 参数 作用 CGO_ENABLED=0 关闭 CGO,生成纯 Go 静态编译程序,减少运行环境依赖 GOOS=linux 指定目标操作系统为 Linux ...
字节飞书后端一面凉经
字节飞书后端一面凉经(其实这是我第一次的面试,说出来都有点让人发笑,前面从来没有面试过)一共面了40分钟左右,感觉自从那个项目了里面的没回答好,我就感觉要寄了 一、项目深挖:RAG知识库系统架构、流程、踩坑问题 整体架构与运行流程 我的 RAG 系统分为 文档接入层、文本处理层、向量存储层、缓存加速层、检索问答层 五层: 文档接入:支持多格式文档上传,解析 PDF、Word、TXT 文本内容; 文本预处理:清洗无效字符、分段、分块切片,避免上下文过长; 向量化:调用 Embedding 模型将文本块转为向量; 持久化存储:向量存入向量数据库,原始文档信息、文档状态、热点检索数据缓存到 Redis; 检索问答:用户提问 -> 问题向量化 -> 相似度检索 TopK -> 拼接上下文 -> LLM 生成答案返回。 核心踩坑问题(你当时没说清楚的:多文档 Redis 覆盖问题) (我本来要说的遇到的问题,脑子一短路说到redis覆盖了,我真是一个sn)问题现象:多文档连续上传,新文档缓存直接覆盖旧文档缓存,导致旧文档检索失效、问答只能命中最新一篇文档。问题...
go语言实现调用大模型api的流式和非流式输出
Go 手写 HTTP 调用 DeepSeek API:从非流式到流式输出 无需 SDK,只用 Go 标准库,搞清楚 LLM API 通信的全部细节。 为什么要手写 HTTP?现在 Go 生态里调用 LLM API 有很多现成的 SDK,比如 go-openai、字节的 Eino,一个比一个方便。 但 SDK 把底层细节全藏起来了——请求头怎么拼?流式数据 SSE 怎么解析?stream: true 和 stream: false 返回的 JSON 结构到底差在哪? 这篇文章就是要把这些都拆开看,用 Go 标准库从零写一个 DeepSeek API 的流式聊天客户端。 项目结构1234api_study/├── body.go # 请求体 & 数据结构定义├── bearer.go # API 认证 Header & 端点└── main.go # 主逻辑 三个文件,不到 120 行代码,拒绝过度设计。 第一步:定义数据结构(body.go)DeepSeek API 是 OpenAI 兼容的,请求体格式长这样: 123456789...
重构一下扫描器里面的gin框架
重构我的sma11sCan项目 里面的Gin 框架:从”能跑”到”能用” 项目地址:github.com/shen060606/sma11sCan/tree/master 最近把自己写的一个端口扫描工具做了工程化改造。原来 Gin API 层所有的代码都塞在一个 main.go 里,没有中间件、没有统一的响应格式、没有优雅关闭,属于典型的”Demo 级别”代码。这篇文章记录一下改造的思路和具体做法。 改造前的样子改造前只有一个 210 行的 cmd/sma11scan-api/main.go,里面塞了: 路由注册 三个 handler 函数(首页、扫描、历史查询) 扫描业务逻辑(CIDR 扫描、单 IP 扫描) 请求参数绑定和响应 所有东西混在一起,加一个新接口都不知道往哪塞。 核心问题就四个: 路由和 handler 魔术胶水粘在一起,代码组织没有章法 没有中间件,日志全靠 fmt.Println,panic 了前端拿到的是一段看不懂的纯文本 每个接口返回的 JSON 结构都不一样,前端要写一堆 if/else 来判断 r.Ru...
gorm使用检索
Go GORM 完整使用教程(对比原生 SQL)一、原生 database/sql 基础回顾1. 初始化数据库连接go 运行 123456789import ( "database/sql" _ "github.com/go-sql-driver/mysql")// DSN格式:用户名:密码@tcp(IP:端口)/数据库名dsn := "root:root@tcp(127.0.0.1:3306)/dorm"db, err := sql.Open("mysql", dsn) 2. 连通性校验go 运行 12345err = db.Ping()if err != nil { panic("数据库连接失败")} 3. DML 操作(增删改)使用 Exec(),返回受影响行数、自增 ID go 运行 12res, err := db.Exec("INSERT INTO user(name) VALUES(?)", &q...
Go 语言开发的资产探测器 sma11sCan
sma11sCan:基于 Go 的高并发端口扫描与资产探测工具开发记录最近用 Go 写了一个安全工具项目:sma11sCan。 这是一个偏命令行风格的资产探测工具,第一版主要聚焦在端口扫描、Banner 抓取、HTTP 探测、Web 指纹识别、Favicon 识别、服务识别、子域名收集、CDN 检测以及源站 IP 找回这些能力上。 这一版还没有接入 Gin,也没有做 Web API、任务队列、MySQL 入库、Redis 缓存这些后端平台化能力。它更像是一个单机 CLI 工具:用户通过命令行传入目标,程序完成扫描、探测、识别并在终端输出结果。 项目地址: 1https://github.com/shen060606/sma11sCan 一、为什么写这个工具一开始写这个项目的原因很简单:想把平时学到的一些安全开发能力串起来。 单独写一个端口扫描器并不难,单独写一个 HTTP Title 获取器也不难,单独做 CNAME 判断 CDN 也不复杂。但是如果把这些能力组合起来,就会涉及到很多工程问题: 比如: 12345671. 如何控制扫描并发,避免 goroutine 无限增长?...
vscode的claude code插件使用deepseekV4模型
前言Claude Code 插件默认走 Anthropic 的模型,但如果你想换成 DeepSeek V4 降低成本,这篇就是一份实操笔记,涵盖从配置到踩坑的全过程。 下载插件首先,打开 VS Code 的插件市场,搜索 “Claude Code for VS Code”,找到并安装它。 配置插件点击vscode左下角的设置小齿轮,选择Extensions,找到Claude Code,点击Settings json按钮,将以下内容粘贴进去。 12{"name": "ANTHROPIC_BASE_URL","value": "https://xxxx"},{"name": "ANTHROPIC_AUTH_TOKEN","value": "xxxx"} 下载CC SwitchCC Switch 是一个开源的桌面 GUI 工具,专门用来管理 Claude Code 的配置。它的核心作用是...
信息搜集扫描
一、先用enscan扫一下资产信息,把扫出来的ip给eeyes来看看哪些ip是真实ip(把enscan改成enscan-v2.0.5-windows-amd64.exe) 单企业溯源(查备案、子域、关联资产) 基础企业搜索enscan -n 字节跳动 指定域名反查企业enscan -d bytedance.com 导出结果到 txtenscan -n 字节跳动 -o result.txt2. 批量域名 / 企业扫描 批量读取域名列表扫描enscan -f domain.txt -o out.txt 查关联APP、公众号、备案全套enscan -n 某某科技公司 -full 最常用:enscan-v2.0.5-windows-amd64.exe -n 网易xxxx 二、eeyes把escan扫出来的ip域名复制到一个新的txt文件里面命名为url.txt,然后把开头 的域名两个字删了保存,扫出来无cdn资产和真实ip以及c段,,可以把回显去提取ip的页面来提取ip(https://uutool.cn/extract-ip/) 本地域名列表 扫真实 IP、cdn 甄别(...
litctf2025
easy_file一进去发现是个登录页面,看看源代码提示了个file查看头像,估计是文件上传,先sql注入简单测试一下,没什么反应,弱口令试试,源代码说会base64加密,所以到bp爆破模块选择base64加密 然后进去admin.php页面,然后尝试上传文件,发现过滤了很多后缀,只能是jpg的,htacess和.user.ini什么的都不行,同时内容也有过滤,php标签被过滤,于是尝试短标签和script 芝士:PHP 默认开启短标签支持,<?= 等价于 <?php echo,完全绕过 <?php 过滤 可以用file包含但是我直接执行system也行就拿到了flag nest_js考点:Next.js 中间件鉴权绕过漏洞 (CVE-2025-29927)链接:https://www.ctfiot.com/233818.htmlhttps://github.com/vulhub/vulhub/blob/master/next.js/CVE-2025-29927/README.zh-cn.md 根据提示访问/dashboard发现一直重定向到...
玄武杯2025.md
ez_include_revernge暨ez_include芝士:file_get_contents函数针对data:协议仍然可以进行解析为data封装协议,而include在遇到data:的格式则会由于格式问题返回NULL 1234567891011121314151617181920212223242526272829303132333435stream_wrapper_unregister('php');if (!isset($_GET['no_hl'])) highlight_file(__FILE__);$mkdir = function($dir) { system('mkdir -- ' . escapeshellarg($dir));};$randFolder = bin2hex(random_bytes(16));$mkdir('users/' . $randFolder);chdir('users/' . $randFolder);$u...
