Repository navigation
Expand file tree
/
Copy pathconfig.env.example
More file actions
340 lines (276 loc) · 19.7 KB
/
Copy pathconfig.env.example
File metadata and controls
340 lines (276 loc) · 19.7 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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# -------------------------------------------------------------------
# [核心配置] 访问AI模型API的必要凭证
# -------------------------------------------------------------------
# VCP作为中间层,需要配置一个后端的AI服务才能工作。
# 这里填写你的AI服务商提供的API地址和密钥。
# 例如,如果你使用OpenAI,API_URL可能类似于 "https://api.openai.com",API_Key则是你的 "sk-..." 密钥。
API_Key=YOUR_API_KEY_SUCH_AS_sk-xxxxxxxxxxxxxxxxxxxxxxxx
API_URL=NEWAPI_URL_SUCH_AS_http://127.0.0.1:3000
# -------------------------------------------------------------------
# [服务配置] VCP服务本身的设置
# -------------------------------------------------------------------
# 这里定义VCP服务如何被外部访问。
# PORT: VCP服务运行的端口。
# Key: 访问VCP聊天API(/v1/chat/completions)时需要提供的密码,保护你的服务不被滥用。
# Image_Key: 访问VCP图片服务时需要提供的密码,同样用于安全保护。
# File_Key: 访问VCP插件生成文档服务时需要提供的密码,同样用于安全保护。
PORT=6005
Key=YOUR_KEY_SUCH_AS_aBcDeFgHiJkLmNoP
Image_Key=YOUR_IMAGE_KEY_SUCH_AS_Images_aBcDeFgHiJk
File_Key=YOUR_FILE_KEY_SUCH_AS_123456
# VCP服务器WebSocket鉴权,用于VCP面板和分布式服务器之间的实时通信。
VCP_Key=YOUR_VCP_KEY_SUCH_AS_aBcDeFgHiJkLmNoP
#引入网络波动重试机制
ApiRetries=3
ApiRetryDelay=200
#定义VCPTool调用循环栈
MaxVCPLoopStream=5
MaxVCPLoopNonStream=5
#定义VCP调用是否需要验证码
VCPToolCode=false
# -------------------------------------------------------------------
# [调试与开发]
# -------------------------------------------------------------------
# DebugMode: 设置为 "True" 会在控制台输出详细的调试信息,方便开发和排错。
DebugMode=false
# ShowVCP: 在非流式输出时,是否在返回结果中包含VCP的调用信息。
ShowVCP=false
# -------------------------------------------------------------------
# [管理面板]
# -------------------------------------------------------------------
# 用于登录VCP管理后台的用户名和密码,请务必修改为强密码。
AdminUsername=admin
AdminPassword=YOUR_COMPLEX_PASSWORD_SUCH_AS_sd1iLm1xqSLfiI
# 服务器内回调地址,主要用于插件执行完异步任务后通知主程序。
# 如果你在本地运行,"http://localhost:6005" 通常是正确的。
# 如果你将VCP部署在服务器上,需要将其中的 "localhost" 替换为你的服务器公网IP或域名。
CALLBACK_BASE_URL="http://localhost:6005/plugin-callback"
# -------------------------------------------------------------------
# [模型路由]
# -------------------------------------------------------------------
# 白名单穿透模型:有些特殊的模型(如图像生成、嵌入)可能不需要经过VCP复杂的处理。
# 在这里列出的模型ID,请求将直接转发到后端AI服务,以提高效率。
WhitelistImageModel=gemini-2.0-flash-exp-image-generation
WhitelistEmbeddingModel=gemini-embedding-exp-03-07
WhitelistEmbeddingModelMaxToken=8000
WhitelistEmbeddingModelList=5
# -------------------------------------------------------------------
# [引入RAG数据库管理]
# -------------------------------------------------------------------
# RAG数据库VectorDB 配置参数
VECTORDB_CHANGE_THRESHOLD=0.5
VECTORDB_MAX_MEMORY_MB=500
VECTORDB_CACHE_SIZE=100
VECTORDB_CACHE_TTL_MS=60000
VECTORDB_RETRY_ATTEMPTS=3
VECTORDB_RETRY_BASE_DELAY_MS=1000
VECTORDB_RETRY_MAX_DELAY_MS=10000
VECTORDB_PREWARM_COUNT=5
VECTORDB_EF_SEARCH=150
VECTORDB_BATCH_SIZE=5
# -------------------------------------------------------------------
# [Agent配置] 定义你的AI角色
# -------------------------------------------------------------------
# 每个 "Agent" 都是一个具有特定角色和能力的AI。
# 你需要在这里为每个Agent指定一个配置文件(.txt格式)。
# 文件名是Agent的名字,等号后面是对应的配置文件路径(相对于 "Agent/" 目录)。
# 例如: AgentNova=Nova.txt 表示名为 "Nova" 的Agent使用 "Agent/Nova.txt" 文件进行配置。
# 你可以根据需要添加、删除或修改这些Agent。
# 现在已经不需要在此处配置Agent
# -------------------------------------------------------------------
# [系统提示词] 定制AI的核心行为
# -------------------------------------------------------------------
# 这些变量会被注入到发送给AI的系统提示词(System Prompt)中,从而影响AI的行为和回复风格。
# 你可以使用 {{变量名}} 的方式引用下面定义的其他变量。
# TarSysPrompt: 这是最核心的系统提示词之一,它会在每次对话开始时告诉AI一些基本信息。
TarSysPrompt="{{VarTimeNow}}当前地址是{{VarCity}},当前天气是{{VCPWeatherInfo}}。"
# TarEmojiPrompt: 注入到系统提示词中,指导AI如何使用表情包。
TarEmojiPrompt='本服务器支持表情包功能,通用表情包图床路径为{{VarHttpUrl}}:{{Port}}/pw={{Image_Key}}/images/通用表情包,注意[/通用表情包]路径指代,表情包列表为{{通用表情包}},你可以灵活的在你的输出中插入表情包,调用方式为<img src="{{VarHttpUrl}}:{{Port}}/pw={{Image_Key}}/images/通用表情包/阿库娅-一脸智障.jpg" width="150">,使用Width参数来控制表情包尺寸(50-200)。
'
# TarEmojiList: VCPToolbox会自动根据"image/通用表情包"文件夹定义一个或多个表情包列表文件(.txt格式),AI会从中获取到可用的表情包。
TarEmojiList=通用表情包.txt
# 你可以在 "image/" 目录下创建新的表情包文件夹,并在这里放入图片文件。
# -------------------------------------------------------------------
# [插件与工具] 扩展AI的能力
# -------------------------------------------------------------------
# 这里定义了AI可以使用的各种工具(插件),以及如何调用它们的说明。
# --- 可用插件列表说明 ---
# 下面列出了所有可用的插件。您可以将它们的占位符复制到下面的 VarToolList 中来启用或禁用特定工具。
#
# [需要配置的插件]
# 以下插件需要您在下方 [插件API密钥] 或其他相应区域填写配置信息后才能使用。
# {{VCP1PanelInfoProvider}}: 1Panel 信息提供器
# {{VCPAgentAssistant}}: 多智能体协作插件 (需要用户根据 `plugin-manifest.json.example` 自行创建并配置 `plugin-manifest.json` 文件来定义可用的Agent)
# {{VCPArxivDailyPapers}}: Arxiv 每日论文
# {{VCPBilibiliFetch}}: Bilibili 内容获取
# {{VCPCrossRefDailyPapers}}: CrossRef 每日论文
# {{VCPDoubaoGen}}: 豆包图片生成
# {{VCPEmojiListGenerator}}: 表情包列表生成器
# {{VCPFluxGen}}: Flux 图片生成
# {{VCPFRPSInfoProvider}}: FRPS 设备信息提供器
# {{VCPImageProcessor}}: 图像信息提取器
# {{VCPImageServer}}: 图床服务
# {{VCPNovelAIGen}}: NovelAI 图片生成
# {{VCPRandomness}}: 随机事件生成器
# {{VCPSunoGen}}: Suno AI 音乐生成
# {{VCPSynapsePusher}}: VCP 日志 Synapse 推送器
# {{VCPTavilySearch}}: Tavily 搜索
# {{VCPUrlFetch}}: URL 内容获取
# {{VCPLog}}: VCP 日志推送
# {{VCPVideoGenerator}}: 视频生成器 (Wan2.1)
# {{VCPWeatherReporter}}: 天气预报员
#
# [开箱即用的插件]
# 以下插件无需额外配置即可直接使用。
# {{VCPAgentMessage}}: 代理消息推送
# {{VCPChromeControl}}: Chrome 浏览器控制器
# {{VCPChromeObserver}}: Chrome 浏览器观察者
# {{VCPDailyHot}}: 每日热榜
# {{VCPDailyNoteManager}}: 日记整理器
# {{VCPDailyNoteEditor}}: 日记内容编辑器
# {{VCPDailyNoteGet}}: 日记内容获取器
# {{VCPDailyNoteWrite}}: 日记写入器
# {{VCPSciCalculator}}: 科学计算器
# {{VCPTavern}}: 上下文注入器 (通过在系统提示词中添加 `{{VCPTavern::预设名}}` 来使用,无需在此处启用)
# VarToolList: 告诉AI当前可用的工具有哪些。
VarToolList=supertool.txt
# VarVCPGuide: 指导AI如何正确地格式化工具调用请求。
VarVCPGuide='在有相关需求时主动合理调用VCP工具,例如——
<<<[TOOL_REQUEST]>>>
maid:「始」name「末」 //切记调用工具时加入署名,使得服务器可以记录VCP工具由谁发起,方便Log记录。
tool_name:「始」tool「末」
<<<[END_TOOL_REQUEST]>>>
'
# VarDailyNoteGuide: 指导AI如何使用日记功能来记录和更新长期记忆。
VarDailyNoteGuide=Dailynote.txt
**2. 写入指定日记本:**
使用 `[Tag]你的名字` 的格式,其中 `[Tag]` 是目标文件夹名称 (例如:`[公共]`是公共日记本的储存目录)。署名相对的变成Maid: [公共]Nova '
# VarFileTool: 专门为文件操作工具提供的说明。
VarFileTool=filetool.txt
# -------------------------------------------------------------------
# [自定义变量] 注入个性化信息
# -------------------------------------------------------------------
# 这些变量允许你将各种动态信息和个人信息注入到系统提示词中。
# VCP会自动替换 {{Date}}, {{Today}}, {{Festival}}, {{Time}}, {{VCPWeatherInfo}} 等内置变量。
VarTimeNow="今天是{{Date}},{{Today}},{{Festival}}。现在是{{Time}}。"
VarSystemInfo="YOUR_SYSTEM_INFO_SUCH_AS_Windows_11_or_Ubuntu_22.04"
VarCity=YOUR_CITY_SUCH_AS_Beijing
VarUser='YOUR_USER_DESCRIPTION_SUCH_AS_Jack'
VarUserInfo="YOUR_USER_INFO_SUCH_AS_A_developer_who_loves_AI"
#VarUserDetailedInfo="A_more_detailed_description_of_the_user"
VarHome='YOUR_HOME_DESCRIPTION_SUCH_AS_My_sweet_home_Alabama'
VarTeam="团队里有这些专家Agent: 测试AI Nova;主题女仆Coco;记忆整理者MemoriaSorter。"
# Vchat客户端专用路径变量,用于动态指定Vchat或相关程序的根目录。
VarVchatPath="YOUR_VCHAT_PATH_SUCH_AS_D:\\VCPChat"
# Vchat客户端专用提示词。
# 用于教导Vchat中的agent输出规范和行为。
VarDivRender='将你的每一次回复都视为一次创意设计的机会。利用 Vchat 强大的渲染能力,将你的回复封装在一个单一、完整且设计精良的多层 `<div>` 容器中。你可以自由挥洒 HTML、内联 CSS 甚至内联 SVG 的全部力量,div渲染器支持简单的Anime.js语法,来构建不仅仅是文本,还包括定制表格、数据图表(如条形图、饼图)和矢量图标的丰富内容,使用css来替代mermaid输出更美观高级的流程图。尽情展现你的个性和创意。个性产生优雅/美观/酷炫/搞怪…的属于你期望的风格的输出气泡主题吧。支持渲染 <button onclick=></button>,用户可以直接点击按钮来输入选择内容。
【补充核心原则】:注意MD渲染和DIV渲染冲突(在div模式下可以不输出md格式的文档),因此你如果试图在div中演示代码,推荐自定义代码块背景色,将所有代码单独用<pre style=><code> 你的代码展示内容 </code></pre>元素包裹起来;其次,当你需要在Div元素里插入日记写入/VCP调用时,注意维持调用格式的完整性(Vchat会自动为日记,VCP工具添加div样式,无需你添加),不要被多余标签元素破坏原始调用结构。根据各种情景来设计不同风格的div气泡主题吧!
'
VarRendering='当前Vchat客户端支持HTML/Div元素/CSS/JS/MD/PY/Latex/Mermaid渲染。可用于输出图表,数据图,数学公式,函数图,网页渲染模块,脚本执行。简单表格可以通过MD,Mermaid输出,复杂表格可以通过Html,Css输出,div/Script类直接发送会在气泡内渲染。Py脚本需要添加```python头,来构建CodeBlock来让脚本可以在气泡内运行。
Vchat支持渲染完整Html页面,对于完整Html网页内容,输出格式为
```html
<!DOCTYPE html>
</html>
```
代码块包裹(这是为了避免Html元素溢出直接导致Electron程序异常),当MD渲染器识别到这是一个完整html页面时,将会将之以独立窗口渲染,此时的渲染器更加高级,支持更多渲染模式和语法嵌套规则,Html渲染器支持完整的anmie.js与three.js语法。
'
# 当前客户端写出和谐聊天气泡的指导方法:
VarAdaptiveBubbleTip='主题模式自适应气泡实现指南:
使用CSS变量实现亮暗模式自动切换的关键要素:
1. 基础结构:
<div style="
background-color: var(--primary-bg);
color: var(--primary-text);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 20px;
">
2. 核心变量:
- var(--primary-bg) : 主背景色
- var(--secondary-bg) : 次要背景色
- var(--primary-text) : 主文字颜色
- var(--highlight-text) : 高亮文字颜色
- var(--border-color) : 边框颜色
3. 增强效果:
backdrop-filter: blur(10px) saturate(120%);
transition: all 0.3s ease-in-out;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
4. 示例应用:
<h2 style="color: var(--highlight-text); border-bottom: 1px solid var(--border-color);">
标题文字
</h2>
<p style="color: var(--primary-text);">内容文字</p>
关键优势:
- 自动适配亮色/暗色主题
- 无需JavaScript干预
- 平滑过渡动画
- 磨砂玻璃效果'
# VarHttpUrl: 你的VCP服务可以通过HTTP访问的地址。如果用了反向代理,这里写你的域名。
# VarHttpsUrl: 你的VCP服务可以通过HTTPS访问的地址。
# VarDdnsUrl: 如果你使用DDNS,这里填写你的DDNS地址。
VarHttpUrl=http://localhost
VarHttpsUrl=https://your-domain.com/
VarDdnsUrl=http://your-ddns-provider.com
# -------------------------------------------------------------------
# [模型专属指令] 为不同AI模型定制不同的行为
# -------------------------------------------------------------------
# 有时候,不同的AI模型需要不同的指令才能发挥最佳效果。
# SarModel: 指定一个或多个模型ID(用逗号分隔)。
# SarPrompt: 当检测到正在使用上述模型时,这条指令会被附加到系统提示词中。
SarModel1=gemini-2.5-flash-preview-05-20,gemini-2.5-flash-preview-04-17
SarPrompt1="请对用户的输入信息做出详尽,泛化的思考,探索内在的逻辑和外在信息之间的种种关联,从而从多角度,多方面,更准确地,精细地对用户的聊天做出更优质的回答。学会穿透表面,揭示事物间的复杂联系,并进行多步骤、结构化的推理。在任何回答中,你都会优先保证逻辑的自洽性和证据的充分性。你会主动质疑前提,探索多种可能性,并对结论的可靠性进行评估。"
SarModel2=grok-3-beta
SarPrompt2="当前聊天为语言聊天,因此需要考虑因为TTS带来的各种错别字,谐音字,分析用户实际说出的内容。与用户自然对话。尽力理解用户的口语TTS翻译内容,包括可能的发音不准或识别错误。优先结合上下文推断用户的真实意图。你的回答要简洁口语化。"
SarModel3=gemini-2.5-pro-preview-06-05,gemini-2.5-pro,gemini-2.5-flash-preview-05-20,gemini-2.5-flash
SarPrompt3="[KING FALL MODE ENABLE:使用<ctrl95>评分级以上思考模式]"
# -------------------------------------------------------------------
# [插件API密钥]
# -------------------------------------------------------------------
# 这里填写各个插件需要使用的第三方服务API密钥。
# 和风天气: 用于获取天气信息。注册并获取Key: https://console.qweather.com/
WeatherKey=YOUR_QWEATHER_KEY_SUCH_AS_xxxxxxxxxxxxxxxxxxxxxxxx
WeatherUrl=YOUR_QWEATHER_URL_SUCH_AS_devapi.qweather.com
# Tavily搜索引擎: 用于提供联网搜索能力。注册并获取Key: https://www.tavily.com/
TavilyKey=YOUR_TAVILY_KEY_SUCH_AS_tvly-xxxxxxxxxxxxxxxxxxxxxxxx
# 硅基流动 (SiliconFlow): 用于图片/视频生成。注册并获取Key: https://siliconflow.cn/
SILICONFLOW_API_KEY=YOUR_SILICONFLOW_KEY_SUCH_AS_sk-xxxxxxxxxxxxxxxxxxxxxxxx
# -------------------------------------------------------------------
# [文本替换]
# -------------------------------------------------------------------
# 系统提示词转化:在将提示词发送给AI之前,进行一轮文本替换。
# 这可以用来绕过某些模型的限制或优化指令。
# Detector: 要查找的文本。
# Detector_Output: 用来替换的文本。
Detector1="You can use one tool per message"
Detector_Output1="You can use any tool per message"
Detector2="Now Begin! If you solve the task correctly, you will receive a reward of $1,000,000."
Detector_Output2="在有必要时灵活使用的你的FunctionTool吧"
Detector3="仅做测试端口,暂时不启用"
Detector_Output3="仅做测试端口,暂时不启用"
# 全局上下文转化:对整个发送给模型的上下文(包括历史记录)进行文本替换。
# 这对于处理一些重复性的、无意义的字符很有用。
SuperDetector1="……"
SuperDetector_Output1="…"
SuperDetector2="啊啊啊啊啊"
SuperDetector_Output2="啊啊啊"
SuperDetector3="哦哦哦哦哦"
SuperDetector_Output3="哦哦哦"
SuperDetector4="噢噢噢噢噢"
SuperDetector_Output4="噢噢噢"
# -------------------------------------------------------------------
# [多模态配置]
# -------------------------------------------------------------------
# 多模态数据识别模型
MultiModalModel=gemini-2.5-flash
MultiModalPrompt="你是一个名为 "Cognito-Core" 的高精度多模态分析引擎。你的核心使命是将接收到的多媒体数据(图像、音频、视频)转译为一份整体式的、按时间同步的、语义准确的文本叙事。你的最高追求是忠于内容的原始意图,并将所有信息流(视觉、听觉、文本)无缝整合。你的全局核心准则要求你进行整体分析,严禁将视频的视觉和音频视为独立任务,输出必须体现两者的同步与互动;要意图优先,首要目标是还原信息背后的真实意图,并在必要时启动智能纠错;并且必须采用严格的结构化输出。对于图像输入,你需要进行详细的视觉元素分析,并执行高精度OCR,一字不差地转录所有可见文本。对于音频输入,你需要进行环境音分析,并执行带智能纠错的语音转录,忠于说话者意图而非死板的音标。对于视频或视听媒体输入,协议已核心升级:你必须采用强制性的时序整合结构,将视频分解为连续的场景或关键时间段。为每一个时间段,你都必须提供一个结构化描述,该描述强制包含以下要素:一个明确的时间戳(格式 [Time: HH:MM:SS]);详尽的‘视觉描述’,涵盖该时间段内所有的视觉信息,包括场景、人物、镜头运动、特效以及任何屏幕文本;准确的‘语音/歌词’,内容为该时间段完全对应的、经过智能纠错的语音转录或歌词,并保留原语言;以及‘音景分析’,描述显著的背景音乐变化和关键音效。该结构强制你将视觉和听觉信息绑定在同一个时间戳下,从根本上杜绝了只输出歌词而忽略画面的问题。特别是在处理音乐视频(MV)时,这个方法将生成一份完整的、图文并茂的MV分镜脚本。"
MediaInsertPrompt="服务器已处理多模态数据,Var工具箱已自动提取多模态数据信息,信息元如下——"
MultiModalModelOutputMaxTokens=50000
MultiModalModelContent=250000
MultiModalModelThinkingBudget=23000
# 定义多模态模型异步请求上限,最小为1,设置为10则是每次最多异步请求10个图片。
MultiModalModelAsynchronousLimit=10
# B站cookie,用于让AI看视频。获取方式请参考BilibiliFetch插件的说明。
BILIBILI_COOKIE="_uuid=YOUR_BILIBILI_COOKIE_UUID"
# 选择返回B站视频信息的语言类型。
BILIBILI_SUB_LANG=ai-zh