全文搜索引擎meilisearch使用
1. 全文搜索选型
1.1 全文搜索
Elasticsearch https://github.com/elastic/elasticsearch 72.1K
Meilisearch https://github.com/meilisearch/meilisearch 49.9K (选用)
typesense https://github.com/typesense/typesense 22.5K
sonice https://github.com/valeriansaliou/sonic 20.6K
zincsearch https://github.com/zincsearch/zincsearch 17.3K (备选)
Bleve https://github.com/blevesearch/bleve 10.3K
1.2 向量搜索(语义搜索)
Qdrant https://github.com/qdrant/qdrant 22.7k
Weaviate https://github.com/weaviate/weaviate?tab=readme-ov-file 12.9K
1.3 结论 (meilisearch)
- 如果需要全面的搜索功能且有运维能力:Elasticsearch
- 如果需要简单部署的全文搜索:Meilisearch
- 如果需要最高性能和专注的向量搜索:Qdrant 或 Weaviate
- 如果已有 PostgreSQL:考虑 pgvector 扩展
- 如果希望纯 Go 实现且内嵌:Bleve
2_从 LLM 到 Agent:大模型应用开发实战指南
1. 大模型基础
1.1 LLM 核心概念
LLM(Large Language Model,大语言模型)是基于 Transformer 架构 的深度学习模型,参数规模通常达百亿至万亿级别。其核心能力源于自注意力机制(Self-Attention),能够捕捉文本中的长距离依赖关系。
LLM 的训练遵循「预训练 + 微调」范式:
| 阶段 | 目标 | 数据规模 | 代表技术 |
|---|---|---|---|
| 预训练 | 学习语言通用表示 | 万亿 Token | Next Token Prediction |
| 指令微调 | 对齐人类指令 | 百万级样本 | SFT(Supervised Fine-Tuning) |
| 对齐优化 | 提升安全性与有用性 | 人类反馈数据 | RLHF / DPO |
代表模型演进:GPT-3 → ChatGPT(GPT-3.5 + RLHF) → GPT-4 → GPT-4o(原生多模态)
1_AI 发展路径:从语言模型到通用人工智能
1. AI 发展路径概览
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart TD
subgraph L1["基础层"]
A["语言模型<br/>Language Models"]
B["理解能力<br/>Understanding"]
C["上下文处理<br/>Context"]
end
subgraph L2["中级层"]
D["条件数据生成<br/>Conditional Generation"]
E["推理与问题解决<br/>Reasoning"]
F["创造力<br/>Creativity"]
end
subgraph L3["高级层"]
G["AI Agents<br/>代理工作流"]
H["类人交互<br/>Human-Like Interaction"]
end
subgraph L4["终极目标"]
I["AGI<br/>通用人工智能"]
end
A --> D
B --> E
C --> F
D --> G
E --> G
F --> H
G --> I
H --> I
classDef foundation fill:#4F46E5,stroke:#3730A3,color:#fff
classDef intermediate fill:#10B981,stroke:#059669,color:#fff
classDef advanced fill:#F59E0B,stroke:#D97706,color:#000
classDef ultimate fill:#EF4444,stroke:#DC2626,color:#fff
class A,B,C foundation
class D,E,F intermediate
class G,H advanced
class I ultimate3_AI学习路径
最近发现不少程序员转行大模型开发,直接去学 pytorch、transformer, 从底层开始学,其实大可不必。你用了那么多年 MYSQL 也没见你想去重新开发一个数据库,怎么突然就想去开发一个新模型了。
如果你想弄个 Deepseek,需要先评估自己的学历背景、学术背景,能不能加入国内这几家大模型开发团队,或者退一步也是做模型微调,但是不用 Github 开源的微调工具,自己有学术成果,设计新的微调方法,这条路几乎不适合半道转行的应用开发程序员。
golang的http库超时
1. Client 端
在作为客户端发送请求时,超时控制主要分两个层面:高层级的 http.Client 超时 和 低层级的 http.Transport 精细化控制。在大多数情况下,设置 http.Client.Timeout 就足够了,它可以有效地防止整个请求过程的无限期等待。

1.1 http.Client.Timeout
最简单,但有时太粗暴。这是最常用的设置,它控制包括连接、重定向(Redirects)以及读取响应体在内的整个请求生命周期的最大时长。
1 | c := &http.Client{ |
- 涵盖范围:Dial(拨号) -> TLS Handshake(握手) -> Request Headers/Body Send -> Response Headers Read -> Response Body Read。
- 优点:简单,能防止请求无限挂起。缺点:对于需要处理长流(Streaming)响应的请求(如下载大文件),这个超时如果不小心设置短了,连接会在中途被截断。
- 如果整个过程的累计时间超过
Timeout,请求会被强制取消,并返回net/http: request canceled (Client.Timeout exceeded)错误。