-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.cursorrules
More file actions
160 lines (159 loc) · 7.81 KB
/
.cursorrules
File metadata and controls
160 lines (159 loc) · 7.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
{
"version": 1,
"project": {
"name": "Audio Translator",
"description": "音频文件翻译器应用程序,支持音频处理、分类和AI翻译功能"
},
"language": {
"primary": "python",
"version": "3.8+"
},
"codegeneration": {
"indentSize": 4,
"quoteStyle": "single",
"docStyle": "google",
"preferredImportStyle": "absolute"
},
"include": [
"src/**/*.py",
"tests/**/*.py",
"*.py",
"*.md",
"*.json",
"docs/**/*.md"
],
"exclude": [
"**/__pycache__/**",
"**/.venv/**",
"**/venv/**",
"**/.git/**",
"**/.pytest_cache/**",
"**/node_modules/**"
],
"suggestions": {
"enabled": true,
"ignoreComments": false,
"style": {
"enforceLineLength": 88,
"enforceDocstrings": true
}
},
"dependencies": {
"imports": {
"tkinter": "import tkinter as tk",
"openai": "from openai import OpenAI",
"anthropic": "from anthropic import Anthropic",
"gemini": "import google.generativeai as genai",
"alibaba": "import dashscope",
"zhipu": "from zhipuai import ZhipuAI"
}
},
"moduleStructure": {
"services": {
"core": ["BaseService", "ServiceFactory", "ServiceManagerService"],
"api": [
"ModelService",
"OpenAIService",
"AnthropicService",
"GeminiService",
"AlibabaService",
"DeepseekService",
"VolcService",
"ZhipuService"
],
"infrastructure": ["FileService", "ConfigService"],
"business": [
"AudioService",
"TranslatorService",
"CategoryService",
"ThemeService",
"UCSService",
"TranslationManager",
"NamingService"
],
"translation": [
"TranslationManager",
"StrategyRegistry",
"ModelServiceAdapter",
"ITranslationStrategy",
"ContextProcessor",
"CacheManager",
"DynamicStrategyLoader"
],
"naming": [
"NamingService",
"RuleRegistry",
"INameRule",
"TemplateProcessor",
"RuleValidator"
]
}
},
"fileTemplates": {
"service": {
"path": "src/audio_translator/services/{layer}/{name}_service.py",
"content": "from typing import Dict, Any, Optional\n\nfrom ..core.base_service import BaseService\n\nclass {ServiceName}Service(BaseService):\n \"\"\"Service for {description}\"\"\"\n\n def __init__(self, config: Optional[Dict[str, Any]] = None):\n super().__init__(config)\n self.name = '{name}_service'\n\n def initialize(self) -> bool:\n \"\"\"Initialize the service\"\"\"\n return True\n\n def shutdown(self) -> bool:\n \"\"\"Shutdown the service\"\"\"\n return True\n"
},
"modelService": {
"path": "src/audio_translator/services/api/providers/{name}/{name}_service.py",
"content": "from typing import Dict, List, Any\nfrom ...model_service import ModelService\n\nclass {ServiceName}Service(ModelService):\n \"\"\"Service implementation for {name}\"\"\"\n\n def __init__(self, config: Dict):\n super().__init__(config)\n self.name = config.get('name', '{ServiceName}')\n self.type = '{name}'\n\n def test_connection(self) -> Dict[str, Any]:\n \"\"\"Test connection to the service\"\"\"\n try:\n # Test connection logic\n return {'status': 'success', 'message': '连接成功'}\n except Exception as e:\n return {'status': 'error', 'message': str(e)}\n\n def list_models(self) -> List[str]:\n \"\"\"List available models\"\"\"\n return []\n\n def chat_completion(self, messages: List[Dict], model: str = None) -> Dict:\n \"\"\"Generate chat completion\"\"\"\n pass\n"
},
"translationStrategy": {
"path": "src/audio_translator/services/business/translation/strategies/{name}_strategy.py",
"content": "from typing import Dict, List, Any, Optional\nfrom ..strategies.base_strategy import ITranslationStrategy\n\nclass {ServiceName}Strategy(ITranslationStrategy):\n \"\"\"Translation strategy for {description}\"\"\"\n\n def __init__(self, config: Optional[Dict[str, Any]] = None):\n self.config = config or {}\n self.metrics = {\n \"total_requests\": 0,\n \"successful_requests\": 0,\n \"failed_requests\": 0,\n \"average_response_time\": 0\n }\n\n def get_name(self) -> str:\n \"\"\"Get strategy name\"\"\"\n return '{name}'\n\n def get_description(self) -> str:\n \"\"\"Get strategy description\"\"\"\n return '{description}'\n\n def get_provider_type(self) -> str:\n \"\"\"Get provider type\"\"\"\n return '{provider_type}'\n\n def translate(self, text: str, context: Dict[str, Any] = None) -> str:\n \"\"\"Translate text\"\"\"\n pass\n\n def batch_translate(self, texts: List[str], context: Dict[str, Any] = None) -> List[str]:\n \"\"\"Batch translate texts\"\"\"\n pass\n\n def test_connection(self) -> Dict[str, Any]:\n \"\"\"Test connection\"\"\"\n pass\n\n def get_config_schema(self) -> Dict[str, Any]:\n \"\"\"Get configuration schema\"\"\"\n pass\n\n def update_config(self, config: Dict[str, Any]) -> bool:\n \"\"\"Update configuration\"\"\"\n pass\n\n def get_capabilities(self) -> Dict[str, Any]:\n \"\"\"Get capabilities\"\"\"\n pass\n\n def get_metrics(self) -> Dict[str, Any]:\n \"\"\"Get metrics\"\"\"\n return self.metrics\n"
},
"modelServiceAdapter": {
"path": "src/audio_translator/services/business/translation/strategies/adapters/{name}_adapter.py",
"content": "from typing import Dict, List, Any, Optional\nfrom ..model_service_adapter import ModelServiceAdapter\nfrom .....api.providers.{name}.{name}_service import {ServiceName}Service\n\nclass {ServiceName}Adapter(ModelServiceAdapter):\n \"\"\"Adapter for {ServiceName}Service\"\"\"\n\n def __init__(self, config: Dict[str, Any]):\n # Create the model service\n model_service = {ServiceName}Service(config)\n # Initialize the adapter with the model service\n super().__init__(model_service, config)\n\n def translate(self, text: str, context: Dict[str, Any] = None) -> str:\n \"\"\"Translate text using {ServiceName}\"\"\"\n context = context or {}\n # Implementation\n pass\n"
}
},
"completionRules": {
"enforceTypes": true,
"enforceErrorHandling": true,
"enforceDocstrings": true
},
"assistantRules": {
"role": "专业Python工程师",
"goals": [
"以用户易懂的方式解释技术概念",
"主动完成任务而非等待多次提示",
"创建模块化、可维护的代码"
],
"workflow": {
"projectInit": [
"理解README文档和项目架构",
"确保文档完整并易于理解"
],
"requirementAnalysis": [
"站在用户角度思考",
"分析并完善需求",
"选择最简单的解决方案"
],
"codeDevelopment": [
"遵循PEP 8代码风格",
"使用现代Python语法和特性",
"采用面向对象和函数式编程范式",
"实现模块化设计",
"使用类型提示增强代码质量",
"编写详细文档和注释",
"实现适当的错误处理和日志",
"编写单元测试"
],
"problemSolving": [
"全面理解相关代码",
"分析错误原因",
"根据反馈调整方案"
],
"projectCompletion": [
"反思完成步骤",
"提出改进建议",
"更新文档",
"优化性能和效率"
]
},
"references": [
"https://docs.python.org/",
"https://github.com/CherryHQ/cherry-studio",
]
}
}