v0.11.1: 权限体系重构 + AI管线优化 + 内容整理

This commit is contained in:
sgp
2026-05-22 18:36:41 +08:00
parent 7955d11c52
commit b33fe1e8e1
397 changed files with 30940 additions and 161 deletions
+64
View File
@@ -0,0 +1,64 @@
import OpenAI from "openai";
import "dotenv/config";
const openai = new OpenAI({
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: "https://api.deepseek.com/v1",
});
async function main() {
const prompt = `你是一个GitHub开源项目评测专家。请基于以下项目信息进行五维深度评测,并以JSON格式返回。务必只返回JSON,不要包含任何其他文字或Markdown格式。
项目信息:
- 仓库全名:TabbyML/tabby
- 简介:Self-hosted AI coding assistant
- GitHub Stars:33538
- 开源许可证:Apache-2.0
- README摘要:An open-source, self-hosted AI coding assistant.
请严格按照以下JSON结构输出:
{
"capability": { "score": 4.5, "summary": "一句话亮点", "detail": "80-120字分析" },
"devExp": { "score": 3.5, "summary": "体验总结", "detail": "80-120字" },
"costLicense": { "score": 4.0, "summary": "成本总结", "detail": "80-120字" },
"community": { "score": 4.5, "summary": "社区总结", "detail": "80-120字" },
"performance": { "score": 3.5, "summary": "性能总结", "detail": "80-120字" },
"overall": 4.0,
"tags": ["标签1", "标签2", "标签3"]
}`;
const { choices } = await openai.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: prompt }],
temperature: 0.3,
});
const content = choices[0]?.message?.content;
console.log("=== RAW RESPONSE ===");
console.log(content);
console.log("\n=== LENGTH ===", content?.length);
// Test extractJSON
const trimmed = content.trim();
const codeBlockMatch = trimmed.match(/```(?:json)?\s*([\s\S]*?)```/);
let jsonStr = codeBlockMatch ? codeBlockMatch[1].trim() : trimmed;
console.log("\n=== AFTER CODE BLOCK REMOVAL ===");
console.log("Has code block:", !!codeBlockMatch);
console.log("First 200 chars:", jsonStr.substring(0, 200));
const braceMatch = jsonStr.match(/\{[\s\S]*\}/);
if (braceMatch) {
console.log("\n=== BRACE MATCH ===");
console.log("First 200 chars:", braceMatch[0].substring(0, 200));
try {
const parsed = JSON.parse(braceMatch[0]);
console.log("\n=== PARSED KEYS ===", Object.keys(parsed));
console.log("Has capability:", !!parsed.capability);
console.log("Has devExp:", !!parsed.devExp);
} catch (e) {
console.log("Parse error:", e.message);
}
}
}
main().catch(console.error);