Files
hr-position-system/scripts/complete_fix.py
DonaldFang 方士碩 a6af297623 backup: 完成 HR_position_ 表格前綴重命名與欄位對照表整理
變更內容:
- 所有資料表加上 HR_position_ 前綴
- 整理完整欄位顯示名稱與 ID 對照表
- 模組化 JS 檔案 (admin.js, ai.js, csv.js 等)
- 專案結構優化 (docs/, scripts/, tests/ 等)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:05:20 +08:00

100 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

with open('index.html', 'r', encoding='utf-8') as f:
lines = f.readlines()
# 找到函數的起始行
start_line = None
for i, line in enumerate(lines):
if 'async function callClaudeAPI' in line:
start_line = i
break
if start_line is None:
print("ERROR: Could not find callClaudeAPI function")
exit(1)
# 找到函數的結束行
end_line = None
brace_count = 0
for i in range(start_line, len(lines)):
for char in lines[i]:
if char == '{':
brace_count += 1
elif char == '}':
brace_count -= 1
if brace_count == 0:
end_line = i
break
if end_line:
break
if end_line is None:
print("ERROR: Could not find end of function")
exit(1)
print(f"Found function from line {start_line+1} to {end_line+1}")
# 新函數
new_function = ''' async function callClaudeAPI(prompt, api = 'gemini') {
try {
// 調用後端 Flask API避免 CORS 錯誤
const response = await fetch("/api/llm/generate", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
api: api,
prompt: prompt,
max_tokens: 2000
})
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error || `API 請求失敗: ${response.status}`);
}
const data = await response.json();
if (!data.success) {
throw new Error(data.error || 'API 調用失敗');
}
let responseText = data.text;
responseText = responseText.replace(/```json\\n?/g, "").replace(/```\\n?/g, "").trim();
return JSON.parse(responseText);
} catch (error) {
console.error("Error calling LLM API:", error);
alert(`AI 生成錯誤: ${error.message}\\n\\n請確保\\n1. Flask 後端已啟動 (python app_updated.py)\\n2. 已在 .env 文件中配置 LLM API Key\\n3. 網路連線正常`);
throw error;
}
}
'''
# 替換
new_lines = lines[:start_line] + [new_function] + lines[end_line+1:]
# 寫回
with open('index.html', 'w', encoding='utf-8') as f:
f.writelines(new_lines)
print("SUCCESS: Function completely replaced")
print("\nVerifying...")
# 驗證
with open('index.html', 'r', encoding='utf-8') as f:
content = f.read()
if 'api.anthropic.com' in content:
print("WARNING: Still contains references to api.anthropic.com")
else:
print("VERIFIED: No more direct API calls")
if '/api/llm/generate' in content:
print("VERIFIED: Now using Flask backend")
print("\nDone! Please:")
print("1. Restart Flask: python app_updated.py")
print("2. Reload browser: Ctrl+F5")
print("3. Test AI generation")