feat: 初始化AI写作工坊项目

- 实现基于Vue 3 + Vite的模块化架构
- 集成DeepSeek API进行内容生成
- 支持写作范式分析功能
- 添加环境变量配置支持
- 完整的项目结构和文档
This commit is contained in:
empty
2026-01-08 10:04:59 +08:00
commit 9fb3600a6a
17 changed files with 3391 additions and 0 deletions

36
src/utils/config.js Normal file
View File

@@ -0,0 +1,36 @@
// 环境变量配置
export const config = {
// API 配置
apiUrl: import.meta.env.VITE_API_URL || 'https://api.deepseek.com/chat/completions',
apiKey: import.meta.env.VITE_API_KEY || 'YOUR_KEY',
// 应用配置
appVersion: '1.0.0',
isDev: import.meta.env.DEV,
mode: import.meta.env.MODE
}
// 验证必需的环境变量
export const validateConfig = () => {
const errors = []
if (!config.apiUrl) {
errors.push('API URL 未配置')
}
if (!config.apiKey || config.apiKey === 'YOUR_KEY') {
errors.push('API Key 未配置或使用默认值')
}
return errors
}
// 获取配置摘要(用于调试)
export const getConfigSummary = () => {
return {
apiUrl: config.apiUrl,
hasApiKey: config.apiKey !== 'YOUR_KEY',
mode: config.mode,
isDev: config.isDev
}
}

View File

@@ -0,0 +1,43 @@
export const buildPrompt = (task, constraints, references) => {
let prompt = `# Role\n你是一个资深的专业写作助手,请严格按照以下要求进行创作。\n\n`
// 1. 注入规范
prompt += `# System Constraints (必须遵守)\n`
constraints.forEach(tag => prompt += `- ${tag}\n`)
prompt += `\n`
// 2. 注入参考案例 (Few-Shot)
if (references.length > 0) {
prompt += `# Reference Cases (请模仿以下风格)\n`
references.forEach((ref, idx) => {
prompt += `<case_${idx + 1} title="${ref.title}">\n${ref.content}\n</case_${idx + 1}>\n\n`
})
}
// 3. 注入用户任务
prompt += `# Current Task (User Input)\n${task}`
return prompt
}
export const parseStreamResponse = (chunk) => {
const lines = chunk.split('\n').filter(line => line.trim())
const contents = []
for (const line of lines) {
if (line.startsWith('data: ')) {
const data = line.slice(6)
if (data === '[DONE]') continue
try {
const parsed = JSON.parse(data)
const content = parsed.choices?.[0]?.delta?.content || ''
if (content) contents.push(content)
} catch (e) {
// 忽略解析错误
}
}
}
return contents.join('')
}