v0.11.1: 权限体系重构 + AI管线优化 + 内容整理
This commit is contained in:
@@ -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);
|
||||
Reference in New Issue
Block a user