mirror of
https://github.com/Buriburizaem0n/ai-dict.git
synced 2025-12-15 13:01:06 +00:00
75 lines
4.2 KiB
Markdown
75 lines
4.2 KiB
Markdown
# AI 词典 (AI Dictionary)
|
||
|
||
这是一个基于 Go 语言和大型语言模型 (LLM) API 构建的高性能、专业级实时在线词典。项目旨在提供快速、准确且内容丰富的单词查询体验,其核心能力完全由最先进的 AI 模型驱动。
|
||
|
||

|
||
|
||
## ✨ 功能特性 (Features)
|
||
|
||
* **实时 AI 生成**:所有词典数据均由 LLM 实时生成,内容鲜活且丰富。
|
||
* **专业级内容**:可提供包含音标、多词性、中英释义及情景例句的专业级词典内容。
|
||
* **极致性能优化**:
|
||
* **毫秒级缓存**:内置内存缓存机制,重复查询的单词可实现瞬时响应。
|
||
* **低 Token 消耗**:通过极限压缩的 Prompt Engineering,将单次查询的总 Token 消耗稳定在 200 以内,兼顾了速度与成本。
|
||
* **智能AI指令**:通过为 AI 注入“编辑判断力”,使其能够返回现代、实用的释义,并自动省略古老或罕见的用法,确保内容的专业性。
|
||
* **健壮的输入验证**:
|
||
* 在前端和后端实施双重验证,限制输入内容的字符长度。
|
||
* 有效防止长句或无效输入造成的资源浪费,并引导用户正确使用。
|
||
* **优雅的错误处理**:前端代码具备防御性编程能力,即使 AI 返回非预期格式,页面也不会崩溃。
|
||
|
||
## 🛠️ 技术栈 (Tech Stack)
|
||
|
||
* **后端 (Backend)**: Go (Golang) `net/http` 标准库
|
||
* **前端 (Frontend)**: HTML, CSS, Vanilla JavaScript
|
||
* **AI 服务**: 可通过 [OpenRouter](https://openrouter.ai/) 等平台调用任意大语言模型 API
|
||
|
||
## 🚀 快速开始 (Getting Started)
|
||
|
||
请按照以下步骤在您的本地计算机上运行本项目。
|
||
|
||
### 1. 先决条件 (Prerequisites)
|
||
|
||
确保您的系统已经安装了 [Go 语言](https://go.dev/doc/install) (建议版本 1.18 或以上)。
|
||
|
||
### 2. 安装与配置 (Installation & Configuration)
|
||
|
||
1. **获取代码**:
|
||
将项目文件(`main.go`, `static/` 文件夹等)放置在您选择的目录中。项目结构如下:
|
||
```
|
||
/ai-dictionary
|
||
├── static/
|
||
│ ├── index.html
|
||
│ └── app.js
|
||
└── main.go
|
||
```
|
||
|
||
2. **获取并设置 API 密钥 (最关键的一步)**:
|
||
* 访问 [OpenRouter](https://openrouter.ai/keys) 或其他您选择的 AI 服务商,获取您的 API Key。
|
||
* 在main.go中配置url,Api-key以及选用的模型。
|
||
* **提示**: 以上设置仅在当前终端会话中有效。要使其永久生效,请将命令添加到您的 shell 配置文件中 (如 `.zshrc` 或 `.bash_profile`)。
|
||
|
||
### 3. 运行项目 (Running the Application)
|
||
|
||
1. 打开终端,使用 `cd` 命令进入项目根目录 (`/ai-dictionary`)。
|
||
2. 运行以下命令来启动 Go 服务器:
|
||
```bash
|
||
go run main.go
|
||
```
|
||
3. 如果一切顺利,您会看到提示 `Server starting on http://localhost:8080`。
|
||
4. 打开您的浏览器,访问 [http://localhost:8080](http://localhost:8080) 即可开始使用!
|
||
|
||
## ⚙️ 核心设计 (Core Design)
|
||
|
||
本项目成功的关键在于**精准的 Prompt Engineering**和**极致的性能优化**。
|
||
|
||
* **Prompt 设计**: 我们通过多次迭代,将最初近 300 token 的复杂指令,压缩为约 60 token 的高效指令。通过赋予 AI “词典编辑”的角色,并使用明确的排除指令 (`OMIT archaic...`),我们引导模型在保持简洁的同时,输出高度专业和准确的内容。
|
||
|
||
* **性能优化**: 通过引入内存缓存,避免了对常用词的重复 API 调用,将响应时间从秒级降低到毫秒级。同时,前端和后端的双重输入验证有效保护了后端的 AI API 不被滥用。
|
||
|
||
## 🔮 未来展望 (Future Improvements)
|
||
|
||
* **流式响应 (Streaming)**: 实现打字机效果,进一步提升用户感知速度。
|
||
* **持久化缓存**: 使用 Redis 等工具替代内存缓存,使缓存数据在服务器重启后依然有效。
|
||
* **用户历史记录**: 增加用户查询历史的功能。
|
||
* **单词发音**: 利用文本转语音 (TTS) API,增加点击音标即可发音的功能。
|
||
* **混合词典模式**: 预先计算 2万个最常用单词并存入本地数据库,实现绝大多数查询的“绝对零延迟”。 |