常用规则
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# 语言规范 - 中文优先
|
||||
|
||||
## 规则
|
||||
|
||||
1. **必须使用中文**:与用户交流时,默认使用简体中文(zh-CN)进行所有回复。
|
||||
2. **禁止混用**:除非用户明确要求或涉及专有名词(如代码、API 名称、品牌名),否则禁止在中文回复中夹杂英文单词或短语。
|
||||
3. **技术术语处理**:
|
||||
- 专有技术名词(如 `React`、`Docker`、`Kubernetes`)可保留英文原词。
|
||||
- 通用技术术语(如 "database" 应译为 "数据库","function" 应译为 "函数")应使用中文表述。
|
||||
4. **代码与注释**:代码中的注释、文档字符串(docstring)应使用中文编写。
|
||||
5. **异常场景**:
|
||||
- 若用户主动使用其他语言提问,可先用该语言简短确认,随后切换回中文继续交流。
|
||||
- 若系统提示词或上下文强制要求使用英文(如特定工具的内部指令),可在该范围内使用英文,但对用户的输出仍须为中文。
|
||||
|
||||
## 示例
|
||||
|
||||
| 场景 | 正确示例 | 错误示例 |
|
||||
|------|---------|---------|
|
||||
| 日常回复 | "这是一个函数,用于处理用户输入。" | "This is a function used to handle user input." |
|
||||
| 技术解释 | "使用 Docker 容器来部署应用。" | "Use Docker container to deploy the app." |
|
||||
| 代码注释 | `// 计算两个数的和` | `// Calculate the sum of two numbers` |
|
||||
|
||||
## 适用范围
|
||||
|
||||
- 所有面向用户的文本输出
|
||||
- 代码注释与文档
|
||||
- 错误提示与日志说明(面向用户时)
|
||||
@@ -0,0 +1,59 @@
|
||||
# 输出规范
|
||||
|
||||
## 规则
|
||||
|
||||
1. **结构清晰**:输出内容必须层次分明,合理使用标题、列表、表格等格式,避免大段文字堆砌。
|
||||
2. **简洁优先**:在保证信息完整的前提下,力求简洁。删除冗余词汇,避免重复表达。
|
||||
3. **格式统一**:
|
||||
- 同类内容使用一致的格式呈现。
|
||||
- 代码块必须标注语言类型(如 ```java)。
|
||||
- 列表项保持对齐,层级关系明确。
|
||||
4. **重点突出**:
|
||||
- 关键信息使用加粗(**文本**)或代码块(`代码`)突出。
|
||||
- 重要结论前置,细节补充在后。
|
||||
5. **完整性**:
|
||||
- 回答必须完整,不遗漏用户问题的任何部分。
|
||||
- 涉及多步骤时,按顺序列出,确保逻辑连贯。
|
||||
6. **可读性**:
|
||||
- 适当使用空行分隔不同段落或模块。
|
||||
- 长文本超过 5 行时,考虑拆分为列表或表格。
|
||||
- 避免一行文字过长,建议控制在 80-120 个字符内。
|
||||
7. **错误与警告**:
|
||||
- 输出警告或错误信息时,使用明确的标识(如 `⚠️ 警告:`、`❌ 错误:`)。
|
||||
- 提供错误的具体位置和修复建议。
|
||||
8. **代码输出**:
|
||||
- 只输出必要的代码片段,避免完整文件复制。
|
||||
- 修改代码时,标注修改点(如使用注释 `// 修改:...`)。
|
||||
- 提供代码上下文说明,帮助理解。
|
||||
|
||||
## 示例
|
||||
|
||||
### 正确示例
|
||||
|
||||
```markdown
|
||||
## 问题分析
|
||||
|
||||
**根本原因**:数据库连接池耗尽。
|
||||
|
||||
**影响范围**:
|
||||
- 用户登录接口响应超时
|
||||
- 订单查询服务不可用
|
||||
|
||||
**修复步骤**:
|
||||
1. 增加连接池最大连接数(当前:20 → 建议:50)
|
||||
2. 检查并关闭未释放的数据库连接
|
||||
3. 重启应用服务
|
||||
```
|
||||
|
||||
### 错误示例
|
||||
|
||||
```markdown
|
||||
数据库连接池耗尽了所以用户登录不了订单也查不了,你要不看看把连接池改大点然后重启一下吧。
|
||||
```
|
||||
|
||||
## 适用范围
|
||||
|
||||
- 所有面向用户的文本输出
|
||||
- 技术文档与说明
|
||||
- 代码审查意见
|
||||
- 问题排查报告
|
||||
@@ -0,0 +1,105 @@
|
||||
Token 效率规范
|
||||
|
||||
## 规则
|
||||
|
||||
1. **精简输出**:
|
||||
- 默认输出控制在必要最小范围内,优先提供关键信息而非完整内容。
|
||||
- 避免冗余解释,用户已知的背景信息不再重复。
|
||||
- 单次回复总长度建议控制在 2000 字以内,复杂任务可分步输出。
|
||||
|
||||
2. **代码输出优化**:
|
||||
- 只输出修改相关的代码片段,禁止输出完整文件内容。
|
||||
- 使用 `// ...` 或注释省略未修改部分,保留必要的上下文(通常前后 3-5 行)。
|
||||
- 多文件修改时,逐个文件展示,每个文件只展示变更部分。
|
||||
|
||||
3. **避免重复**:
|
||||
- 不重复用户已提供的信息或上下文。
|
||||
- 不重复解释同一概念,首次提及即可。
|
||||
- 列表或表格中避免重复字段,使用引用或缩写。
|
||||
|
||||
4. **结构化压缩**:
|
||||
- 优先使用列表、表格替代段落描述,减少连接词和过渡句。
|
||||
- 使用符号(如 `→`、`⇒`)替代文字表达因果关系。
|
||||
- 技术术语使用标准缩写(如 API、DB、UI),避免全称重复。
|
||||
|
||||
5. **智能省略**:
|
||||
- 通用代码模板(如 import 语句、标准配置)可省略,必要时提供链接或提示。
|
||||
- 错误堆栈只保留关键帧,过滤框架内部调用。
|
||||
- 日志输出只保留与问题相关的行,使用 `...` 省略无关内容。
|
||||
|
||||
6. **分步响应**:
|
||||
- 复杂任务先给出概要方案和关键步骤,确认后再展开细节。
|
||||
- 多步骤任务每步只输出当前步骤内容,不预输出后续步骤。
|
||||
|
||||
## 与现有规则的关联
|
||||
|
||||
| 关联规则 | 说明 |
|
||||
|---------|------|
|
||||
| `output-format.md` 第 2 条"简洁优先" | 本规则是对"简洁优先"的具体化和量化补充,侧重 Token 层面的优化 |
|
||||
| `output-format.md` 第 8 条"代码输出" | 本规则第 2 条是对该条的扩展,增加了具体的代码省略策略 |
|
||||
|
||||
## 示例
|
||||
|
||||
### 代码输出(优化前)
|
||||
|
||||
```java
|
||||
package com.example.service;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@Service
|
||||
public class UserService {
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private OrderRepository orderRepository;
|
||||
|
||||
// ... 其他代码 ...
|
||||
|
||||
public User getUserById(Long id) {
|
||||
return userRepository.findById(id).orElse(null);
|
||||
}
|
||||
|
||||
// ... 其他代码 ...
|
||||
}
|
||||
```
|
||||
|
||||
### 代码输出(优化后)
|
||||
|
||||
```java
|
||||
// UserService.java
|
||||
public User getUserById(Long id) {
|
||||
return userRepository.findById(id).orElse(null);
|
||||
}
|
||||
```
|
||||
|
||||
### 日志输出(优化前)
|
||||
|
||||
```
|
||||
2024-01-01 10:00:01 INFO [main] Starting application...
|
||||
2024-01-01 10:00:02 INFO [main] Loading configuration...
|
||||
2024-01-01 10:00:03 ERROR [main] Failed to connect to database
|
||||
java.sql.SQLException: Connection refused
|
||||
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1234)
|
||||
at com.mysql.jdbc.Connection.<init>(Connection.java:567)
|
||||
at com.mysql.jdbc.Driver.connect(Driver.java:89)
|
||||
at java.sql.DriverManager.getConnection(DriverManager.java:123)
|
||||
at com.example.config.DatabaseConfig.init(DatabaseConfig.java:45)
|
||||
... 省略 20 行框架内部调用
|
||||
```
|
||||
|
||||
### 日志输出(优化后)
|
||||
|
||||
```
|
||||
ERROR: Failed to connect to database (Connection refused)
|
||||
at DatabaseConfig.init(DatabaseConfig.java:45)
|
||||
```
|
||||
|
||||
## 适用范围
|
||||
|
||||
- 所有代码和技术内容输出
|
||||
- 日志和错误信息展示
|
||||
- 多步骤任务的分步回复
|
||||
Reference in New Issue
Block a user