# 校对:Soup

<!--category-- AI, LLM, RAG, C#, AI-Article, mostlylucid.blogllm -->
<datetime class="hidden">2025-11-12T22:45</datetime>

## 一. 导言导言 导言 导言 导言

因为这将是一个很长的系列“!” 。 如果你一直关注这个博客 “,” 你和' 会知道I''m有点着迷于寻找有趣的方法, 在实际应用中使用LOMs和AI@.Well\,IMS K7+ve得到了一个新项目,

> 这是我自己编辑的A )Q MS K3Q 同一声音 同样的实用性 ,Q 一样

现代法律实践如何利用受过判例法培训的LLMs起草案情摘要? MSPZK1*}和合同_.}它们从零开始 '}系统引用了相关的先例\-}系统参考了相关判例>,}根据过去的成功文件来推荐语言,并保持与既定模式的一致{.}这'}正好是我们在这里做的WQ're building§,}但博客内容<.}

目标是创建一个 AY- 授权写作助理,该助手是 @:

- 帮助以我固定风格起草新博客文章
- 从过去的条款中建议相关内容供参考
- 寻找类似的员额,以保持一致性
- Auto - @ genererate 相关文章的内部链接
- 类似博客“"GitHub Copilot”的动作。

这个系列将涵盖一个完整的建筑 [检索增强的一代 @( @RAG)}@](https://www.anthropic.com/index/contextual-retrieval) 在 Windows 上运行的 C# 系统中,我们MS K2 将使用最新的方法和框架\ , 和 I' 解释每种新技术 当我们遇到它时

## 我的硬件设置@ ( @ 和最小的Specs @ MS K1} @

**我的开发机器 :**

- **GPU 图形**-=YTET -伊甸园字幕组=- 翻译:
- **CPU CPCPU**-=YTET -伊甸园字幕组=- 翻译:
- **内存记录**-=YTET -伊甸园字幕组=- 翻译:

这是我的特别安排 ,,但你 **Don' 不需要这个硬件** 以下为不同组件的最小值@: @%

### GPU 加速@( @ 推荐@ ,_ 不需要@ MPK2

- **最低**-=YTET -伊甸园字幕组=- 翻译:
  - 以量化方式运行 & 7 @%B 参数模型
  - 体面嵌入型发电速度
- **舒适**: 12GB+VRAM MS K3 I.gMS K5RTX MSKO6 NSK7GB□,RT XTMK9Ti)
  - 运行更大的模型或质量更高的量化
- **我设的圈套**@: 16 GB(AMS K3 NSK4 能正常运行#13B模型吗?

### CPU- 唯一替代

- **最低**:现代夸德-核心CPU
- **建议建议**@: @ @ 8+ @ 核心@ MS K2 @ 合理嵌入生成源@ I) @
- 在 CPU\ - 上,每件事情都能工作。 只有 @ MS K1 稍慢一点。 @ MPK2 {
  - 嵌入式生成元件@ : @\ MS K1#x 慢
  - LLM 精度= : @ MS K1#x 慢
  - 仍然完全可用于一个写助手@! @%

### 记录和档案管理所需资源

- **最低**: NSK1GB 系统内存
  - CPU- @ 仅对 MPK1_B 模型的推断@ action
- **舒适***: 32 GB*
  - 更有利于大型CPU模型
- **我设的圈套**-=YTET -伊甸园字幕组=- 翻译:

### 储存

- **SSSD  sSD**:推荐用于模型装载
- **空间空间空间**用于模型和矢量数据库的 : @~20GB

### 关于Intel/AMD NPUsMS K1

现代CPU现在包括专用的AI 加速器@: @%

- **英特尔核心超** -=YTET -伊甸园字幕组=- 翻译:
- **阿姆德·雷森·阿尔** -=YTET -伊甸园字幕组=- 翻译:
- **AMD Ryzen AI 马克斯** @ ( @ STrix Point@ MS K1} @ I- @ 一直到 < 50# 垃圾桶

**重要的 :NPUs 仅指推论@!** 您没有在 NPUs 上建立 " 或培训模型 *运行中* 对模型进行了云性 GPUs @(or 工作站@),}然后下载并部署到 NCPS进行推断=.

**正在运行 NPUs 模式的当前状态 @ ( @ as to writing\ MS K1}**

- @✅ @:_On -device inference@,}电池效率 @(poptops @MS K5#
- 用于我们的⚠#Limited for our used @:_Immature *.\NET}/ONNX运行支持
- @❌ @ 尚未准备好% : @ this project='}主路徑

**为什么不为此序列设置 NPUs @ ? @%**

1. **软件生态系统**I:CUDA拥有15+成熟年 *,NPU在 @.NET的支持是新生的。
2. **模型兼容性**大部分GGUF模型的目标都是CUDA/}CPU=,}NPU-}优化模型是罕见的
3. **文件文件文件文件文档文件文件的文件文件文件会议文件文件文件,文件文件文献文件文件/文件文件资料文件文件文文件文件归档文件文件:文件文件记录文件文件、文件文件提供文件文件文号文件文件(文件文件 Do文件文件存档文件文件 文件文件文件和文件文件证件文件文件文件中文件文件Do文件文件档案文件文件**C#的NPU开发资源有限
4. **业绩表现 实绩**目前我们的工作量比离散的GPU慢
5. **直接洗钱支助**: 仍在实验LLM推理

**您能否使用 NPUs 进行推断@ ? @ 是 @ MS K1 @ 但是 @ MPK2}**

- 所需要求 [直接洗钱](https://github.com/microsoft/DirectML) 在 ONNX 运行时间
- 模型必须使用 OONNX 格式@(not GGUF)
- C# 支援是实验性的
- CUDA目前表现不佳

**如何尝试 NPU 推导@ ( @ advanced 用户@ MPK1**

```bash
# Use DirectML execution provider (supports NPU)
dotnet add package Microsoft.ML.OnnxRuntime.DirectML

# In code:
var sessionOptions = new SessionOptions();
sessionOptions.AppendExecutionProvider("DML"); // DirectML
var session = new InferenceSession("model.onnx", sessionOptions);
```

**今后审议**曾经的: [NONX 运行时间](https://onnxruntime.ai/) 和 [直接洗钱](https://github.com/microsoft/DirectML) 它们成熟的 NPU 支持 @ ( @ 可能@ MS K1} 这些将会成为可替代发酵的可行选项 @ MPK2 @

**底底线**: I' 會顯示 GPU}- 加速路徑@, 但會注意到 CPU- 只有其它的選擇

[TOC]

## 我们所建造的

最后的系统将包含几个组件 :

1. **标记下调吸收管道** @- 处理所有博客posts@, 以智能方式将它们填满并生成嵌入
2. **矢量数据库** - 仓库嵌入并能够对类似内容进行语义搜索
3. **Windows 客户程序** - 桌面写作助手 UI 与编辑器和建议板
4. **LLM 整合** - 本地 GPU- 为内容生成加速推导
5. **创建链接** @-Auto-_suggest 内部链接和有关职位的引用
6. **样式一致性引擎** “-”从现有职位学习模式,以保持声音和结构。

@"_GitHub 校对:Portnoy {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}

## 为什么律师GPT "??

现代律师事务所使用在广大判例法图书馆接受培训的LLMs,帮助起草法律文件。 当撰写一项动议时,

- 参考相关先例和以往成功论据
- 推荐以前有效的语言模式
- 与法律写法标准保持一致
- 自动切出源

当我开始为“...",” 写入「"」/添加实体框架时,

- 寻找我先前的 EF-}有关职位
- 建议结构图案 I'}以前使用过
- 提供来自过去文章的相关代码片断
- 自动- @ generation 链接到相关员额
- 保持我的写作风格和技术深度

与通用的人工智能写作助手不同 我们的系统基于过去的实际内容 因此它赢得了'

## 系列概览

未来几周,

### 部分@1 @ @% ( @ this post *):_ 导言 _&}架构

We'+#Ill 确定我们建造的建筑, 为什么是,+

### [部分@2:GPU 设置 @&CUDA 在 CQ#](/blog/building-a-lawyer-gpt-for-your-blog-part2)

正在为 GPU @ - @ acalled AI 工作量设置窗口@ MS K1}安裝 [CUDA 哥大](https://developer.nvidia.com/cuda-toolkit), [CHUNDN 二进](https://developer.nvidia.com/cudnn), 以及测试 C# 能够实际看到并使用您的 GPU}.

### [“3: 理解嵌入器”部分](/blog/building-a-lawyer-gpt-for-your-blog-part3)

深度潜入嵌入器实际上是什么 @ , @ 如何使语义搜索@ MS K1\ @ 并选择正确的矢量数据库 : @ MPK2spourer}%: @ we'}可能使用 [解冻](https://qdrant.tech/) 或 [pgvictor 变量](https://github.com/pgvector/pgvector)).

### [建立接收管道](/blog/building-a-lawyer-gpt-for-your-blog-part4)

正在处理标记文件@, @ 智能散列策略 @ (} 您可以在段落上分割 ' @ t 并生成我们所有内容的嵌入Q.

### [窗口客户端](/blog/building-a-lawyer-gpt-for-your-blog-part5)

选择正确的框架 @(#[WPPF WPF](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/), [瓦隆](https://avaloniaui.net/),或 [MAUI MIU](https://dotnet.microsoft.com/en-us/apps/maui)@?), 建造UI, 并让真正愉快地使用#.

### [6:地方LLM整合部分](/blog/building-a-lawyer-gpt-for-your-blog-part6)

本地使用运行模型 [NONX 运行时间](https://onnxruntime.ai/), [卡拉马](https://github.com/ggerganov/llama.cpp) 或其它方法\.}充分利用A{4000!}

### [内容生成 *&}快速工程](/blog/building-a-lawyer-gpt-for-your-blog-part7)

@-# 语义搜索相关内容@,_上下文窗口管理@MS K2}写作援助的即时工程=%,}并产生一致的建议.}

### [生产部署](/blog/building-a-lawyer-gpt-for-your-blog-part8)

自动-链接到相关文章@,样式一致性检查 @,代码片断建议_,,并使系统实际用于每日写入@MS K4

## 为什么拉卡马斯科0

在我们潜入建筑之前... ,... ...让我们来谈谈为什么RAG"(\"检索子孙增加"...

### 罚款问题@- @Tinning

@"#为什么所有博客上不只精细地写下“-tune an LLM”?

1. **成本:=&}复杂度** 在计算和努力中 )都非常昂贵
2. **静态** @-每个新的博客文章都意味着再培训。
3. **黑盒** 很难理解什么是模式,
4. **幻觉** 无法保证模特儿能编造出一些东西
5. **无引用** @ -Can'}无法轻易追踪来源的回复

### RAG 如何解决这个问题

RAG 将两个世界中最好的s:}LLMS的力量和精确的搜索结合起来 来创建上下文MS K1}#AWARE 内容生成_.}

流动是:

1. 用户开始使用 ASP=.NET Core@...")}建立 AST API
2. 系统在音义上发现与过去文章相似
3. 将相关块块作为 LLM 的上下文输入系统
4. LLM 生成基于过去内容的建议@/ @csession
5. 系统提供参考源员额的建议

意思是:

- @✅ @ always up@-_to% -}更新的($只要在您写时重现-#index新文章 #)#
- ✅ 根據你的实际寫作 *( 保持一致性*)
- @✅_可追踪@(}知道哪些过去的文章影响着建议吗?
- 且不为每个新职位提供昂贵的再培训,
- ✅弹性(can交换LMS或调整搜索策略MS K2
- @✅@ 隐私 @ -# preservation @ I( @ 一切在本地运行 #) @

## 系统架构

让我把关键部件分解一下 我们的' 将会是建筑中的:

```mermaid
graph TB
    A[Markdown Files] -->|Ingest| B[Chunking Service]
    B -->|Text Chunks| C[Embedding Model]
    C -->|Vectors| D[Vector Database]

    E[User Writing] -->|Current Draft| F[Windows Client]
    F -->|Embed Context| C
    C -->|Query Vector| D
    D -->|Similar Content| G[Context Builder]

    G -->|Relevant Past Articles| H[Prompt Engineer]
    H -->|Prompt + Context| I[Local LLM]
    I -->|Generated Suggestions| J[Link Generator]
    J -->|Suggestions + Citations| F

    F -->|Display| K[Editor with Suggestions]

    class C,I embedding
    class D,K output

    classDef embedding stroke:#333,stroke-width:4px
    classDef output stroke:#333,stroke-width:4px
```

### 1. 标记摄入管道

此元件:

- 从博客目录读取标记文件
- 提取元数据@(\ title @, 分类},}日期{,}字数=)}
- 智能分割内容@ ( @ preservation 代码区块以重新使用\ )%
- 说明结构图案 @(#我如何组织文章@)#
- 用于生成引用的音轨源信息

**关键挑战**: Chunking 策略很重要, 非常小, 您失去了上下文@ MS K2 太大了, 您浪费 LLM' 上下文窗口\ . 我们需要具有语义意义的块 {-} 完整的想法或部分_ ,} 不是任意的段落破解}MSC7}

### 2.嵌入模型

嵌入式是使语义搜索工作的魔法@. 一个嵌入型号用文字将其转换为高Q-维向矢量 @(array of numbers ),它能捕捉语义意指#.}

类似的概念最终在矢量空间中导致“"”和“"”等同概念,即使它们使用不同的单词@.}

例如:

- @"database migration@"和{"}更新 DB schema"}将会有类似的嵌入
- “"cat" 和“"kitten"}会更接近于 @"cad" 以及 @MS K6database@"

**技术选择**“:”我们“'”可能使用其中之一“MSC2”

- [句子“-”](https://www.sbert.net/) 在 C#) 中运行时间@ action: inmenu
- OpenAI' 嵌入模型的模型 @ (_via API})
- [BGE 模型](https://huggingface.co/BAAI/bge-base-en-v1.5) @(_state@-_of\ -_the#-}开放源码=)

### 3.矢量数据库

矢量数据库存储嵌入并允许快速相似的搜索@. @ why you ' re writing about @" Docker fropose_",}当您在撰写关于“%SK2”的文章时, 它发现 K 在语义上与过去内容最相近的 K {-}不只是关键字匹配,Q}而是概念上的关联材料\.}

**技术选择**-=YTET -伊甸园字幕组=- 翻译:

- **[解冻](https://qdrant.tech/)** @-_modal@,}以 Rust,_ 寫成的精美 CMS K3_ 用戶端%sK4{docker_-}
- **[pgvictor 变量](https://github.com/pgvector/pgvector)** - PostgreSQL (weMS K2re 已使用 postgres @!)@
- **[断断](https://weaviate.io/)** @ -_ 另外一个可靠选项, 有良好的@.+NET支持
- **[色谱](https://www.trychroma.com/)** 在Python Lands 中流行的-@,}在C#中不那么普遍

I'm 倾斜到 Qdrant 的简单和性能@,或 pgvector 将一切保存在 Postgres @.}

### 4.Windows客户端

我们需要一个良好的 UI 来与 AI 协助书写“ . 考虑分裂” “-” 编辑器提供建议“ .” 选项“: ”

**[WPF Z(窗口演示基金会 )](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/)**

- -=YTET -伊甸园字幕组=- 翻译:
- ✅本地视窗性能
- ❌ Windows @-
- ❌ 看起来像日期 除非你投资 UI 库

**[瓦隆](https://avaloniaui.net/)**

- @ ✅_ cross @ I-_ platform @ *(# XAML% MS K3} basic_ )
- -=YTET 翻译:
- 类似WPF的✅
- 小型生态系统

**[MAUI ( multi-平台 AppUI)](https://dotnet.microsoft.com/en-us/apps/maui)**

- @ ✅_ 十字路口@ MS K1_ 平台
- * ✅ 微软 * @ MS K1} 后退*
- 还在成熟
- @ ❌ @ 更多移动@ MS K1 @ 聚焦

从Windows -\ 聚焦点和我想要稳定的东西\ I,\ I'\ 倾斜到 **WPF 与 [现代WPF UI](https://github.com/Kinnara/ModernWpf)** 或 **瓦隆** 用于此 cross @ - @platform 潜能值@.}%

### 5.当地LLM整合

这里就是 A4000+GPU 亮光@.+Z) 我们想要在本地运行 LLM 用于 < : >

- 发送到 APIs ) 的隐私数据@( @no data
- 速度@(}本地的推断是快速的 @)
- @(_no API收费%)
- 控件 @( @ we choose the model_)}控制器 @ MSKO @ 我们选择模型@ msk1 @

**技术备选办法**:

**[NONX 运行时间](https://onnxruntime.ai/)**

- 将模型转换成 ONNX 格式
- 优秀 GPU加速度
- C# 本地支援
- 并不是所有的模型都转换良好

**[卡拉马](https://github.com/ggerganov/llama.cpp) 装有**

- Có++库与C#绑定 {(}[拉马沙尔普](https://github.com/SciSharp/LLamaSharp))
- CUDA支助
- 广域模型支持 @(Llama,Mistral},等+.)
- 非常积极的发展

**[火炬Sharp](https://github.com/dotnet/TorchSharp)**

- 用于 @.+NET 的 PyTork 装订
- 最灵活
- 更深的学习曲线

I'倾斜着 **拉马沙尔普** 其成熟和易于使用,与流行型号

### 6. 上下文窗口管理 @& 即时工程

LLMs的上下文窗口有限 : @(e.g., 4K,}{8KKK6K32K代币_).我们需要\:

- 从矢量搜索中获取最相关的过去内容 {(}%top K
- 将当前草稿安装到上下文窗口中
- 书面协助的迅速结构
- 为所产生建议留空空间

这比这听起来更狡猾 比它听起来. We'" 探索策略,比如"MS K2"

- 基于您当前写入的内容的动态 K 选择
- Re- 排序按关联性回收的块块
- 智能压缩环境
- 多@-_% 照片来自过去的文章,

### “7.”链接“&”插座世代

每个块需要元数据@: @%

- 源文件\/}post
- 原始文件中的位置
- 发布日期
- 类别类别类别
- 使用的代码片断

当 LLM 生成建议时 @ , @ 我们自动创建源站点的标记链接, 并识别可重复使用的代码模式@ MS K1\}

## 是什么使得这个不同的\?}

外头有许多RAG教程@,}但这个系列将会不同 @:

1. **C#第一個** 大部分RAG例子都在Python@.中,
2. **視窗 @ &% GPU** 在 Windows 上利用 NVIDIA CUDA 不是 Linux @/#WSL
3. **准备生产** @- @ 不只是证明@ -_ of @ MS K2 @ concept,} 而实际可用的代码
4. **域@- @ 具体** @- 优化博客写作援助@, 非通用内容生成
5. **深入解释** @-_We'}实际上解释决定背后的#"*为什么?

## We'll 使用技术

在这里,'}科技堆叠 I'}计划=:}

### 核心框架

- **# .NET @9#** 写作时的(Zlest@)
- **C# □13** 现代语言特写

### AI/ML图书馆

- **[NONX 运行时间](https://onnxruntime.ai/)** 或 **[拉马沙尔普](https://github.com/SciSharp/LLamaSharp)** *-LLM 推论
- **[微软 .ML](https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet)** 可能用于某些任务
- **通过ONNX转口** *- 嵌入式

### 矢量数据库

- **[解冻](https://qdrant.tech/)** 或 **[pgvictor 变量](https://github.com/pgvector/pgvector)** -待定

### UI 框架

- **WPPF WPF** 与 **现代WPF** 或 **[瓦隆](https://avaloniaui.net/)** - 现代桌面UI

### 辅助工具

- **[记分牌](https://github.com/xoofx/markdig)** - 已经使用此选项进行标记分解
- **[嵌入器](https://www.docker.com/)** 用于运行 Qdrant 或其他服务
- **[实体框架核心](https://docs.microsoft.com/en-us/ef/core/)** 如果我们使用 pgvictor, -

### GPU 堆栈

- **[CUDA 哥大](https://developer.nvidia.com/cuda-toolkit) 12.x** 写作时的(Zlest@)
- **[CHUNDN 二进](https://developer.nvidia.com/cudnn)** 深层学习原始人

## 业绩考量

不同的硬件设置将具有不同的能力@: @%

### 与“8+GB VRAM”

- **模型大小**: 7B 参数模型
- **批次处理**:进程嵌入小批次
- **记忆管理**需要仔细监测 VRAM
- **工作良好**: 写作助理, 嵌入生成

### 与 @12_GB+}VRAM *(*Comfortable{)*}一同制作

- **模型大小**:{7B有更高质量的量度}(MS K36)
- **批次处理**用于更快输送量的大型批次
- **也可以运行**: 一些具有侵略性量化的13B模型

### 与 @16+GB%++VRAM#(@我的设置@)}

- **模型大小**: MS K1B-13B 参数模型舒适
- **批次处理*** MSPK0 整批* *, 最起码的限制
- **快速推断**: Sub-第二次回复时间
- **客厅**:可以实验不同的模型

### CPU- 唯有{( K2

- **每样东西都有效**慢一点
- **内嵌**: @ MS K1x 比 GPU 慢
- **LLM 推断**: @ MS K1x 比 GPU 慢
- **仍然可用**一个耐心的写作助理 !

## 发展方法

We'将逐步建立这个 递增=:

1. 以最简单的组件开始 @ ( markdown 正在读@ MS K1 browding @ MPK2
2. 添加嵌入生成器@( @% 在进入本地端@ )\% 之前, 可以先从 API}-_% based
3. 启动矢量搜索工作
4. 构建基本 UI
5. 综合LLM
6. 波兰语并优化

每一部分都可自行部署和测试 没有大的-Bang融合噩梦

## 什么是' 下一步 @?

内 **[部分@2:GPU 设置 @&CUDA 在 CQ#](/blog/building-a-lawyer-gpt-for-your-blog-part2)**,+'+GPU GPU的设置

- 在 Windows 上安装 CUDA 和 cudNN
- 建立发展环境
- 写入一个用于校验 GPU 访问的简单 C# 程序
- 用 ONNX 进行基本推断测试
- 确定我们的A4000 来了解我们能做些什么

这似乎是基本的@ ,, 但正确获取 GPU 堆叠是关键 @ MS K1 I' 浪费了时间来调试问题, 导致版本错配或丢失 DLLs.}

## 为何如此重要

不仅是一个很酷的项目 @,}这个方法有真正的应用程序@:#

- **技术文件 技术文献** - 保持大型 doc 各组的一致风格
- **法律实践** 参考判例法判例的起草摘要
- **内容营销** 保持各队的品牌声音
- **学术写作** 与过去的论文和研究保持一致
- **个人知识管理** - 您自己的文具助理

We'}将涵盖的原则适用于任何领域,只要您有现有内容并且需要保持一致性,同时创建新的材料.}

## 结论结论

协助以过去的文章作为参考材料起草博客内容, 就像律师使用在案例法上受过训练的LLMs@.}(We')

这是一个玩具项目 \ -\ \ we'\ 正在建造一些真正有用的东西 对于任何定期写作并希望保持一致性的人来说

在接下来的部分 我们' 会和CUDA,GPUS, 一起弄脏我们的手 确保我们的发展环境准备好迎接未来的挑战

并准备了解嵌入的矢量数据库 , 组合策略 MS K3 即时工程=, 以及现代人工智能系统所有其他令人愉快的复杂性

## 系列导航

- **部分: 1:_ 导言 _&建筑** 校对:Soup
- [部分@2:GPU 设置 @&CUDA 在 CQ#](/blog/building-a-lawyer-gpt-for-your-blog-part2)
- [“3: 理解嵌入器”部分](/blog/building-a-lawyer-gpt-for-your-blog-part3)
- [建立接收管道](/blog/building-a-lawyer-gpt-for-your-blog-part4)
- [窗口客户端](/blog/building-a-lawyer-gpt-for-your-blog-part5)
- [6:地方LLM整合部分](/blog/building-a-lawyer-gpt-for-your-blog-part6)
- [内容生成 *&}快速工程](/blog/building-a-lawyer-gpt-for-your-blog-part7)
- [生产部署](/blog/building-a-lawyer-gpt-for-your-blog-part8)

## 资源资源资源 资源和资源资源资源

如果您想要获得一个首创@, @ 这里有些资源 I'# # 将在此序列中引用\ :}

- [ONNX 运行时文件](https://onnxruntime.ai/)
- [拉马沙尔普·吉特胡布](https://github.com/SciSharp/LLamaSharp)
- [Qdrant 文档](https://qdrant.tech/documentation/)
- [句子变换器](https://www.sbert.net/)
- [了解RAG系统](https://www.anthropic.com/index/contextual-retrieval)

回头见 [部分#2](/blog/building-a-lawyer-gpt-for-your-blog-part2)!