SYMBOL INDEX (937 symbols across 420 files) FILE: app/api/check-update/route.js function getCurrentVersion (line 6) | function getCurrentVersion() { function getLatestVersion (line 18) | async function getLatestVersion() { function GET (line 37) | async function GET() { function compareVersions (line 73) | function compareVersions(a, b) { FILE: app/api/llm/fetch-models/route.js function POST (line 5) | async function POST(request) { FILE: app/api/llm/model/route.js function GET (line 5) | async function GET(request) { function POST (line 24) | async function POST(request) { FILE: app/api/llm/ollama/models/route.js function GET (line 8) | async function GET(request) { FILE: app/api/llm/providers/route.js function GET (line 6) | async function GET() { FILE: app/api/monitoring/logs/route.js function GET (line 6) | async function GET(request) { FILE: app/api/monitoring/stats/route.js function GET (line 6) | async function GET(request) { FILE: app/api/monitoring/summary/route.js function GET (line 6) | async function GET(request) { FILE: app/api/projects/[projectId]/batch-add-manual-ga/route.js function POST (line 8) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/batch-delete-files/route.js function POST (line 15) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/batch-generateGA/route.js function POST (line 8) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/current/route.js function GET (line 9) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/question/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/route.js function GET (line 8) | async function GET(request, { params }) { function PUT (line 103) | async function PUT(request, { params }) { function DELETE (line 153) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/stream-model/route.js function GET (line 10) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/stream/route.js function GET (line 9) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/[taskId]/vote/route.js function POST (line 9) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/blind-test-tasks/route.js function GET (line 7) | async function GET(request, { params }) { function POST (line 116) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/chunks/[chunkId]/clean/route.js function POST (line 6) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/chunks/[chunkId]/eval-questions/route.js function POST (line 8) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/chunks/[chunkId]/questions/route.js function POST (line 7) | async function POST(request, { params }) { function GET (line 51) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/chunks/[chunkId]/route.js function GET (line 5) | async function GET(request, { params }) { function DELETE (line 26) | async function DELETE(request, { params }) { function PATCH (line 46) | async function PATCH(request, { params }) { FILE: app/api/projects/[projectId]/chunks/batch-content/route.js function POST (line 4) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/chunks/batch-edit/route.js function POST (line 10) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/chunks/name/route.js function GET (line 10) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/chunks/route.js function POST (line 5) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/config/route.js function GET (line 5) | async function GET(request, { params }) { function PUT (line 18) | async function PUT(request, { params }) { FILE: app/api/projects/[projectId]/custom-prompts/route.js function GET (line 13) | async function GET(request, { params }) { function POST (line 39) | async function POST(request, { params }) { function DELETE (line 80) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/custom-split/route.js function POST (line 13) | async function POST(request, { params }) { function generateCustomChunks (line 63) | function generateCustomChunks(projectId, fileId, fileName, content, spli... FILE: app/api/projects/[projectId]/dataset-conversations/[conversationId]/route.js function GET (line 16) | async function GET(request, { params }) { function PUT (line 66) | async function PUT(request, { params }) { function DELETE (line 140) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/dataset-conversations/export/route.js function GET (line 12) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/dataset-conversations/route.js function GET (line 16) | async function GET(request, { params }) { function POST (line 70) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/dataset-conversations/tags/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/datasets/[datasetId]/copy-to-eval/route.js function POST (line 4) | async function POST(req, { params }) { FILE: app/api/projects/[projectId]/datasets/[datasetId]/evaluate/route.js function POST (line 7) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/[datasetId]/route.js function GET (line 7) | async function GET(request, { params }) { function PATCH (line 41) | async function PATCH(request, { params }) { FILE: app/api/projects/[projectId]/datasets/[datasetId]/token-count/route.js function GET (line 8) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/datasets/batch-evaluate/route.js function POST (line 13) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/export/route.js function GET (line 15) | async function GET(request, { params }) { function POST (line 45) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/generate-eval-variant/route.js function POST (line 7) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/import/route.js function POST (line 5) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/optimize/route.js function POST (line 10) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/datasets/route.js function POST (line 16) | async function POST(request, { params }) { function GET (line 42) | async function GET(request, { params }) { function DELETE (line 114) | async function DELETE(request) { function PATCH (line 147) | async function PATCH(request) { FILE: app/api/projects/[projectId]/datasets/tags/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/default-prompts/route.js function GET (line 4) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/distill/questions/by-tag/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/distill/questions/route.js function POST (line 10) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/distill/tags/[tagId]/route.js function PUT (line 7) | async function PUT(request, { params }) { FILE: app/api/projects/[projectId]/distill/tags/all/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/distill/tags/route.js function POST (line 11) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/[evalId]/route.js function GET (line 9) | async function GET(request, { params }) { function PUT (line 70) | async function PUT(request, { params }) { function DELETE (line 97) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/count/route.js function GET (line 5) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/export/route.js constant BATCH_SIZE (line 5) | const BATCH_SIZE = 500; function convertToCSVRow (line 10) | function convertToCSVRow(item, isHeader = false) { function formatExportItem (line 36) | function formatExportItem(item) { function POST (line 51) | async function POST(request, { params }) { function GET (line 200) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/import/route.js function validateTrueFalse (line 9) | function validateTrueFalse(item, index) { function validateSingleChoice (line 23) | function validateSingleChoice(item, index) { function validateMultipleChoice (line 52) | function validateMultipleChoice(item, index) { function validateQA (line 101) | function validateQA(item, index) { function validateData (line 115) | function validateData(data, questionType) { function parseExcel (line 146) | function parseExcel(buffer, questionType) { function parseJSON (line 227) | function parseJSON(content) { function POST (line 234) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/route.js function GET (line 7) | async function GET(request, { params }) { function DELETE (line 59) | async function DELETE(request, { params }) { function POST (line 86) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/sample/route.js constant SMALL_TOTAL_THRESHOLD (line 5) | const SMALL_TOTAL_THRESHOLD = 5000; constant HARD_LIMIT (line 6) | const HARD_LIMIT = 50000; function shuffleArray (line 8) | function shuffleArray(arr) { function POST (line 17) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/eval-datasets/tags/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/eval-tasks/[taskId]/route.js function GET (line 8) | async function GET(request, { params }) { function DELETE (line 85) | async function DELETE(request, { params }) { function PUT (line 132) | async function PUT(request, { params }) { FILE: app/api/projects/[projectId]/eval-tasks/route.js function GET (line 8) | async function GET(request, { params }) { function POST (line 80) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/files/[fileId]/ga-pairs/route.js function POST (line 11) | async function POST(request, { params }) { function GET (line 179) | async function GET(request, { params }) { function PUT (line 202) | async function PUT(request, { params }) { function PATCH (line 271) | async function PATCH(request, { params }) { function getFileContent (line 299) | async function getFileContent(projectId, fileName) { FILE: app/api/projects/[projectId]/files/route.js function GET (line 23) | async function GET(request, { params }) { function DELETE (line 54) | async function DELETE(request, { params }) { function POST (line 154) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/generate-questions/route.js function POST (line 8) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/huggingface/upload/route.js function POST (line 10) | async function POST(request, { params }) { function formatDataset (line 128) | function formatDataset(questions, formatType, systemPrompt, includeCOT, ... function convertToCSV (line 238) | function convertToCSV(data) { function uploadFile (line 265) | async function uploadFile(token, datasetName, filePath, destFileName) { function generateReadme (line 295) | function generateReadme(projectName, projectDescription, formatType) { FILE: app/api/projects/[projectId]/image-datasets/[datasetId]/route.js function GET (line 8) | async function GET(request, { params }) { function PUT (line 48) | async function PUT(request, { params }) { function DELETE (line 92) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/image-datasets/export-zip/route.js function GET (line 11) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/image-datasets/export/route.js function POST (line 7) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/image-datasets/route.js function GET (line 8) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/image-datasets/tags/route.js function GET (line 5) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/images/[imageId]/route.js function GET (line 5) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/images/annotations/route.js function POST (line 9) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/images/datasets/route.js function POST (line 6) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/images/next-unanswered/route.js function GET (line 8) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/images/pdf-convert/route.js function POST (line 9) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/images/questions/route.js function POST (line 6) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/images/route.js function GET (line 10) | async function GET(request, { params }) { function POST (line 32) | async function POST(request, { params }) { function DELETE (line 48) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/images/zip-import/route.js function POST (line 9) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/llamaFactory/checkConfig/route.js function GET (line 6) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/llamaFactory/generate/route.js function POST (line 7) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/model-config/[modelConfigId]/route.js function DELETE (line 5) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/model-config/route.js function normalizeModelEndpoint (line 7) | function normalizeModelEndpoint(endpoint = '') { function GET (line 19) | async function GET(request, { params }) { function POST (line 60) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/models/[modelId]/route.js function GET (line 6) | async function GET(request, { params }) { function PUT (line 54) | async function PUT(request, { params }) { function DELETE (line 122) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/models/route.js function GET (line 7) | async function GET(request, { params }) { function PUT (line 50) | async function PUT(request, { params }) { FILE: app/api/projects/[projectId]/playground/chat/route.js function resolveLatestModelConfig (line 5) | async function resolveLatestModelConfig(projectId, incomingModel = {}) { function POST (line 31) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/playground/chat/stream/route.js function resolveLatestModelConfig (line 5) | async function resolveLatestModelConfig(projectId, incomingModel = {}) { function POST (line 33) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/preview/[fileId]/route.js function GET (line 8) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/questions/[questionId]/route.js function DELETE (line 5) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/questions/batch-delete/route.js function DELETE (line 5) | async function DELETE(request) { FILE: app/api/projects/[projectId]/questions/export/route.js function POST (line 3) | async function POST(request, { params }) { function getAllQuestions (line 39) | async function getAllQuestions(projectId, searchTerm = '', chunkName = '... function getQuestionsByIds (line 81) | async function getQuestionsByIds(projectId, questionIds) { FILE: app/api/projects/[projectId]/questions/route.js function GET (line 12) | async function GET(request, { params }) { function POST (line 64) | async function POST(request, { params }) { function PUT (line 95) | async function PUT(request) { FILE: app/api/projects/[projectId]/questions/templates/[templateId]/route.js function GET (line 6) | async function GET(request, { params }) { function PUT (line 33) | async function PUT(request, { params }) { function DELETE (line 90) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/questions/templates/route.js function GET (line 6) | async function GET(request, { params }) { function POST (line 36) | async function POST(request, { params }) { FILE: app/api/projects/[projectId]/questions/tree/route.js function GET (line 10) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/route.js function GET (line 4) | async function GET(request, { params }) { function PUT (line 20) | async function PUT(request, { params }) { function DELETE (line 51) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/split/route.js function POST (line 8) | async function POST(request, { params }) { function GET (line 63) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/tags/route.js function GET (line 6) | async function GET(request, { params }) { function PUT (line 26) | async function PUT(request, { params }) { function POST (line 51) | async function POST(request, { params }) { function DELETE (line 70) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/tasks/[taskId]/route.js function GET (line 7) | async function GET(request, { params }) { function PATCH (line 59) | async function PATCH(request, { params }) { function DELETE (line 133) | async function DELETE(request, { params }) { FILE: app/api/projects/[projectId]/tasks/list/route.js function GET (line 7) | async function GET(request, { params }) { FILE: app/api/projects/[projectId]/tasks/route.js function normalizeModelEndpoint (line 9) | function normalizeModelEndpoint(endpoint = '') { function normalizeTaskModelInfo (line 20) | function normalizeTaskModelInfo(modelInfo) { function GET (line 39) | async function GET(request, { params }) { function PUT (line 68) | async function PUT(request, { params }) { function POST (line 110) | async function POST(request, { params }) { FILE: app/api/projects/delete-directory/route.js function POST (line 13) | async function POST(request) { FILE: app/api/projects/migrate/route.js function POST (line 10) | async function POST() { function GET (line 48) | async function GET(request) { function executeMigration (line 98) | async function executeMigration(taskId) { FILE: app/api/projects/open-directory/route.js function POST (line 13) | async function POST(request) { FILE: app/api/projects/route.js function POST (line 4) | async function POST(request) { function GET (line 34) | async function GET(request) { FILE: app/api/projects/unmigrated/route.js function GET (line 11) | async function GET(request) { FILE: app/api/update/route.js function POST (line 6) | async function POST() { FILE: app/dataset-square/page.js function DatasetSquarePage (line 11) | function DatasetSquarePage() { FILE: app/layout.js function RootLayout (line 15) | function RootLayout({ children }) { FILE: app/monitoring/components/Charts.js function Charts (line 18) | function Charts({ trendData, modelDistribution }) { FILE: app/monitoring/components/StatsCards.js function StatCard (line 11) | function StatCard({ title, value, subValue, icon: Icon, color }) { function StatsCards (line 60) | function StatsCards({ data }) { FILE: app/monitoring/components/UsageTable.js function UsageTable (line 29) | function UsageTable({ FILE: app/monitoring/hooks/useMonitoringData.js function useMonitoringData (line 6) | function useMonitoringData() { FILE: app/monitoring/page.js function MonitoringPage (line 30) | function MonitoringPage() { FILE: app/page.js function Home (line 14) | function Home() { FILE: app/projects/[projectId]/blind-test-tasks/[taskId]/page.js function BlindTestDetailPage (line 26) | function BlindTestDetailPage() { FILE: app/projects/[projectId]/blind-test-tasks/components/BlindTestHeader.js function BlindTestHeader (line 8) | function BlindTestHeader({ title, status, onBack, actions }) { FILE: app/projects/[projectId]/blind-test-tasks/components/BlindTestInProgress.js function AnswerBox (line 34) | function AnswerBox({ title, modelLabel, answer, streaming, showThinking,... function BlindTestInProgress (line 188) | function BlindTestInProgress({ FILE: app/projects/[projectId]/blind-test-tasks/components/BlindTestTaskCard.js constant STATUS_MAP (line 29) | const STATUS_MAP = { function BlindTestTaskCard (line 36) | function BlindTestTaskCard({ task, onView, onDelete, onInterrupt, onCont... FILE: app/projects/[projectId]/blind-test-tasks/components/CreateBlindTestDialog.js function CreateBlindTestDialog (line 32) | function CreateBlindTestDialog({ open, onClose, projectId, onCreate }) { FILE: app/projects/[projectId]/blind-test-tasks/components/ResultDetailList.js function ResultAnswerSection (line 33) | function ResultAnswerSection({ title, rawContent, isWinner, modelLabel, ... function ResultItem (line 147) | function ResultItem({ result, index, task, question }) { function ResultDetailList (line 320) | function ResultDetailList({ task }) { FILE: app/projects/[projectId]/blind-test-tasks/components/ResultSummary.js function ResultSummary (line 7) | function ResultSummary({ stats, modelInfo }) { FILE: app/projects/[projectId]/blind-test-tasks/hooks/useBlindTestDetail.js function useBlindTestDetail (line 8) | function useBlindTestDetail(projectId, taskId) { FILE: app/projects/[projectId]/blind-test-tasks/hooks/useBlindTestTasks.js function useBlindTestTasks (line 8) | function useBlindTestTasks(projectId) { FILE: app/projects/[projectId]/blind-test-tasks/page.js function BlindTestTasksPage (line 28) | function BlindTestTasksPage() { FILE: app/projects/[projectId]/datasets/[datasetId]/page.js function DatasetDetailsPage (line 17) | function DatasetDetailsPage({ params }) { FILE: app/projects/[projectId]/datasets/[datasetId]/useDatasetDetails.js function useDatasetDetails (line 14) | function useDatasetDetails(projectId, datasetId) { FILE: app/projects/[projectId]/datasets/hooks/useDatasetFilters.js function useDatasetFilters (line 11) | function useDatasetFilters(projectId) { FILE: app/projects/[projectId]/datasets/page.js function DatasetsPage (line 25) | function DatasetsPage({ params }) { FILE: app/projects/[projectId]/distill/autoDistillService.js class AutoDistillService (line 8) | class AutoDistillService { method executeDistillTask (line 23) | async executeDistillTask(config) { method buildTagTree (line 170) | async buildTagTree(config) { method batchBuildTagTree (line 228) | async batchBuildTagTree(config) { method generateQuestionsForTags (line 400) | async generateQuestionsForTags(config) { method generateDatasetsForQuestions (line 552) | async generateDatasetsForQuestions(config) { method generateMultiTurnDatasetsForQuestions (line 641) | async generateMultiTurnDatasetsForQuestions(config) { method generateSingleMultiTurnDataset (line 761) | async generateSingleMultiTurnDataset({ projectId, questionId, question... method generateSingleDataset (line 780) | async generateSingleDataset({ projectId, questionId, questionInfo, mod... method getTagDepth (line 810) | getTagDepth(tag, parentMap) { method getTagPath (line 830) | getTagPath(tag, parentMap) { method addLog (line 862) | addLog(onLog, message) { FILE: app/projects/[projectId]/distill/page.js function DistillPage (line 21) | function DistillPage() { FILE: app/projects/[projectId]/eval-datasets/[evalId]/page.js constant QUESTION_TYPE_CONFIG (line 40) | const QUESTION_TYPE_CONFIG = { function EvalDatasetDetailPage (line 68) | function EvalDatasetDetailPage() { FILE: app/projects/[projectId]/eval-datasets/[evalId]/useEvalDatasetDetails.js function useEvalDatasetDetails (line 8) | function useEvalDatasetDetails(projectId, evalId) { FILE: app/projects/[projectId]/eval-datasets/components/BuiltinDatasetDialog.js function BuiltinDatasetDialog (line 30) | function BuiltinDatasetDialog({ open, onClose, projectId, onSuccess }) { FILE: app/projects/[projectId]/eval-datasets/components/EvalDatasetCard.js constant QUESTION_TYPE_CONFIG (line 18) | const QUESTION_TYPE_CONFIG = { function EvalDatasetCard (line 46) | function EvalDatasetCard({ item, selected, onSelect, onEdit, onDelete, p... FILE: app/projects/[projectId]/eval-datasets/components/EvalDatasetHeader.js function EvalDatasetHeader (line 10) | function EvalDatasetHeader({ projectId, onNavigate, onDelete }) { FILE: app/projects/[projectId]/eval-datasets/components/EvalDatasetList.js function EvalDatasetList (line 23) | function EvalDatasetList({ items, selectedIds, onSelect, onSelectAll, on... FILE: app/projects/[projectId]/eval-datasets/components/EvalEditableField.js function EvalEditableField (line 11) | function EvalEditableField({ FILE: app/projects/[projectId]/eval-datasets/components/EvalToolbar.js constant STATS_CONFIG (line 43) | const STATS_CONFIG = [ function EvalToolbar (line 51) | function EvalToolbar({ FILE: app/projects/[projectId]/eval-datasets/components/ExportEvalDialog.js constant QUESTION_TYPES (line 33) | const QUESTION_TYPES = [ constant EXPORT_FORMATS (line 41) | const EXPORT_FORMATS = [ function ExportEvalDialog (line 47) | function ExportEvalDialog({ FILE: app/projects/[projectId]/eval-datasets/components/ImportDialog.js function ImportDialog (line 42) | function ImportDialog({ open, onClose, projectId, onSuccess }) { FILE: app/projects/[projectId]/eval-datasets/constants.js constant QUESTION_TYPES (line 1) | const QUESTION_TYPES = [ constant FORMAT_PREVIEW (line 9) | const FORMAT_PREVIEW = { constant DATA_SETS (line 181) | const DATA_SETS = [ FILE: app/projects/[projectId]/eval-datasets/hooks/useEvalDatasets.js function useEvalDatasets (line 9) | function useEvalDatasets(projectId) { FILE: app/projects/[projectId]/eval-datasets/hooks/useExportEvalDatasets.js function useExportEvalDatasets (line 9) | function useExportEvalDatasets(projectId, stats = {}) { FILE: app/projects/[projectId]/eval-datasets/page.js function EvalDatasetsPage (line 32) | function EvalDatasetsPage() { FILE: app/projects/[projectId]/eval-tasks/[taskId]/components/EvalHeader.js function EvalHeader (line 10) | function EvalHeader({ task, stats, filterCorrect, onFilterCorrectSelect ... FILE: app/projects/[projectId]/eval-tasks/[taskId]/components/EvalStats.js constant QUESTION_TYPE_LABELS (line 7) | const QUESTION_TYPE_LABELS = { function EvalStats (line 15) | function EvalStats({ stats, currentFilter, onFilterSelect }) { FILE: app/projects/[projectId]/eval-tasks/[taskId]/components/QuestionCard.js constant EVAL_STATUS (line 17) | const EVAL_STATUS = { constant STATUS_CONFIG (line 24) | const STATUS_CONFIG = { function QuestionCard (line 30) | function QuestionCard({ result, index, task }) { FILE: app/projects/[projectId]/eval-tasks/[taskId]/page.js function EvalTaskDetailPage (line 25) | function EvalTaskDetailPage() { FILE: app/projects/[projectId]/eval-tasks/components/CreateEvalTaskDialog.js function CreateEvalTaskDialog (line 29) | function CreateEvalTaskDialog({ open, onClose, projectId, onSuccess }) { FILE: app/projects/[projectId]/eval-tasks/components/EvalTaskCard.js constant STATUS_CONFIG (line 32) | const STATUS_CONFIG = { function EvalTaskCard (line 39) | function EvalTaskCard({ task, onView, onDelete, onInterrupt }) { FILE: app/projects/[projectId]/eval-tasks/components/ModelSelector.js function ModelSelector (line 18) | function ModelSelector({ models, selectedModels, onSelectionChange, erro... FILE: app/projects/[projectId]/eval-tasks/components/QuestionFilter.js constant QUESTION_TYPES (line 22) | const QUESTION_TYPES = [ function QuestionFilter (line 30) | function QuestionFilter({ FILE: app/projects/[projectId]/eval-tasks/components/ScoreAnchorsForm.js function ScoreAnchorsForm (line 24) | function ScoreAnchorsForm({ FILE: app/projects/[projectId]/eval-tasks/hooks/useEvalTaskDetail.js function useEvalTaskDetail (line 8) | function useEvalTaskDetail(projectId, taskId) { FILE: app/projects/[projectId]/eval-tasks/hooks/useEvalTaskForm.js function useEvalTaskForm (line 6) | function useEvalTaskForm(projectId, open) { FILE: app/projects/[projectId]/eval-tasks/hooks/useEvalTasks.js function useEvalTasks (line 8) | function useEvalTasks(projectId) { FILE: app/projects/[projectId]/eval-tasks/page.js function EvalTasksPage (line 31) | function EvalTasksPage() { FILE: app/projects/[projectId]/image-datasets/[datasetId]/page.js function ImageDatasetDetailPage (line 11) | function ImageDatasetDetailPage() { FILE: app/projects/[projectId]/image-datasets/components/DatasetContent.js function handleAnswer (line 10) | function handleAnswer(dataset) { function DatasetContent (line 25) | function DatasetContent({ dataset, projectId, onAnswerChange }) { FILE: app/projects/[projectId]/image-datasets/components/DatasetSidebar.js function DatasetSidebar (line 10) | function DatasetSidebar({ dataset, projectId, onUpdate }) { FILE: app/projects/[projectId]/image-datasets/components/EmptyState.js function EmptyState (line 8) | function EmptyState() { FILE: app/projects/[projectId]/image-datasets/components/ImageDatasetCard.js function ImageDatasetCard (line 10) | function ImageDatasetCard({ FILE: app/projects/[projectId]/image-datasets/components/ImageDatasetFilterDialog.js function ImageDatasetFilterDialog (line 18) | function ImageDatasetFilterDialog({ FILE: app/projects/[projectId]/image-datasets/components/ImageDatasetFilters.js function ImageDatasetFilters (line 8) | function ImageDatasetFilters({ FILE: app/projects/[projectId]/image-datasets/components/ImageDatasetHeader.js function ImageDatasetHeader (line 14) | function ImageDatasetHeader({ FILE: app/projects/[projectId]/image-datasets/components/MetadataEditor.js function MetadataEditor (line 11) | function MetadataEditor({ dataset, projectId, onUpdate }) { FILE: app/projects/[projectId]/image-datasets/components/MetadataInfo.js function MetadataInfo (line 10) | function MetadataInfo({ dataset }) { FILE: app/projects/[projectId]/image-datasets/hooks/useImageDatasetDetail.js function useImageDatasetDetail (line 6) | function useImageDatasetDetail(projectId, datasetId) { FILE: app/projects/[projectId]/image-datasets/hooks/useImageDatasetDetails.js function useImageDatasetDetails (line 9) | function useImageDatasetDetails(projectId, datasetId) { FILE: app/projects/[projectId]/image-datasets/hooks/useImageDatasetFilters.js constant STORAGE_KEY (line 3) | const STORAGE_KEY = 'imageDatasetFilters'; function useImageDatasetFilters (line 5) | function useImageDatasetFilters(projectId) { FILE: app/projects/[projectId]/image-datasets/hooks/useImageDatasets.js function useImageDatasets (line 6) | function useImageDatasets(projectId, filters = {}) { FILE: app/projects/[projectId]/image-datasets/page.js function ImageDatasetsPage (line 21) | function ImageDatasetsPage() { FILE: app/projects/[projectId]/images/components/DatasetDialog.js function DatasetDialog (line 22) | function DatasetDialog({ open, projectId, image, onClose, onSuccess }) { FILE: app/projects/[projectId]/images/components/ImageFilters.js function ImageFilters (line 24) | function ImageFilters({ FILE: app/projects/[projectId]/images/components/ImageGrid.js function ImageGrid (line 28) | function ImageGrid({ FILE: app/projects/[projectId]/images/components/ImageList.js function ImageList (line 33) | function ImageList({ FILE: app/projects/[projectId]/images/components/ImportDialog.js function ImportDialog (line 33) | function ImportDialog({ open, projectId, onClose, onSuccess }) { FILE: app/projects/[projectId]/images/components/QuestionDialog.js function QuestionDialog (line 22) | function QuestionDialog({ open, projectId, image, onClose, onSuccess }) { FILE: app/projects/[projectId]/images/components/annotation/AIGenerateButton.js function AIGenerateButton (line 21) | function AIGenerateButton({ FILE: app/projects/[projectId]/images/components/annotation/AnnotationDialog.js function AnnotationDialog (line 19) | function AnnotationDialog({ FILE: app/projects/[projectId]/images/components/annotation/AnswerInput.js function AnswerInput (line 9) | function AnswerInput({ FILE: app/projects/[projectId]/images/components/annotation/QuestionSelector.js function QuestionSelector (line 8) | function QuestionSelector({ FILE: app/projects/[projectId]/images/hooks/useAnnotation.js function clearJsonValues (line 7) | function clearJsonValues(obj) { function useAnnotation (line 21) | function useAnnotation(projectId, onSuccess, onFindNextImage) { FILE: app/projects/[projectId]/images/page.js function ImagesPage (line 40) | function ImagesPage() { FILE: app/projects/[projectId]/layout.js function ProjectLayout (line 11) | function ProjectLayout({ children, params }) { FILE: app/projects/[projectId]/multi-turn/[conversationId]/page.js function ConversationDetailPage (line 25) | function ConversationDetailPage({ params }) { FILE: app/projects/[projectId]/multi-turn/[conversationId]/useConversationDetails.js function useConversationDetails (line 11) | function useConversationDetails(projectId, conversationId) { FILE: app/projects/[projectId]/multi-turn/components/ConversationTable.js constant QUESTION_TOOLTIP_THRESHOLD (line 24) | const QUESTION_TOOLTIP_THRESHOLD = 80; constant SCENARIO_TOOLTIP_THRESHOLD (line 25) | const SCENARIO_TOOLTIP_THRESHOLD = 120; FILE: app/projects/[projectId]/multi-turn/page.js function MultiTurnDatasetPage (line 13) | function MultiTurnDatasetPage({ params }) { FILE: app/projects/[projectId]/page.js function ProjectPage (line 10) | function ProjectPage({ params }) { FILE: app/projects/[projectId]/playground/page.js function ModelPlayground (line 16) | function ModelPlayground({ searchParams }) { FILE: app/projects/[projectId]/questions/components/ConfirmDialog.js function ConfirmDialog (line 18) | function ConfirmDialog({ FILE: app/projects/[projectId]/questions/components/ExportQuestionsDialog.js function ExportQuestionsDialog (line 21) | function ExportQuestionsDialog({ open, onClose, onExport, selectedCount,... FILE: app/projects/[projectId]/questions/components/QuestionEditDialog.js function QuestionEditDialog (line 22) | function QuestionEditDialog({ FILE: app/projects/[projectId]/questions/components/QuestionsFilter.js function QuestionsFilter (line 7) | function QuestionsFilter({ FILE: app/projects/[projectId]/questions/components/QuestionsPageHeader.js function QuestionsPageHeader (line 16) | function QuestionsPageHeader({ FILE: app/projects/[projectId]/questions/components/TemplateListView.js function TemplateListView (line 20) | function TemplateListView({ templates, onEditTemplate, onDeleteTemplate,... FILE: app/projects/[projectId]/questions/components/template/TemplateFormDialog.js function TemplateFormDialog (line 24) | function TemplateFormDialog({ open, onClose, onSubmit, template }) { FILE: app/projects/[projectId]/questions/components/template/TemplateManagementDialog.js function TemplateManagementDialog (line 28) | function TemplateManagementDialog({ FILE: app/projects/[projectId]/questions/hooks/useQuestionDelete.js function useQuestionDelete (line 8) | function useQuestionDelete(projectId, onDeleteSuccess) { FILE: app/projects/[projectId]/questions/hooks/useQuestionEdit.js function useQuestionEdit (line 7) | function useQuestionEdit(projectId, onSuccess) { FILE: app/projects/[projectId]/questions/hooks/useQuestionGeneration.js function useQuestionGeneration (line 11) | function useQuestionGeneration(projectId, model, taskSettings, getQuesti... FILE: app/projects/[projectId]/questions/hooks/useQuestionTemplates.js function useQuestionTemplates (line 11) | function useQuestionTemplates(projectId, sourceType = null) { FILE: app/projects/[projectId]/questions/hooks/useQuestionsFilter.js function useQuestionsFilter (line 7) | function useQuestionsFilter(projectId) { FILE: app/projects/[projectId]/questions/page.js function QuestionsPage (line 29) | function QuestionsPage({ params }) { FILE: app/projects/[projectId]/settings/components/PromptSettings.js function PromptSettings (line 18) | function PromptSettings() { FILE: app/projects/[projectId]/settings/page.js constant TABS (line 15) | const TABS = { function SettingsPage (line 22) | function SettingsPage({ params }) { FILE: app/projects/[projectId]/tasks/page.js function TasksPage (line 13) | function TasksPage({ params }) { FILE: app/projects/[projectId]/text-split/page.js function TextSplitPage (line 42) | function TextSplitPage({ params }) { FILE: app/projects/[projectId]/text-split/useChunks.js function useChunks (line 13) | function useChunks(projectId, currentFilter = 'all') { FILE: app/projects/[projectId]/text-split/useDataCleaning.js function useDataCleaning (line 9) | function useDataCleaning(projectId) { FILE: app/projects/[projectId]/text-split/useEvalGeneration.js function useEvalGeneration (line 14) | function useEvalGeneration(projectId) { FILE: app/projects/[projectId]/text-split/useFileProcessing.js function useFileProcessing (line 16) | function useFileProcessing(projectId) { FILE: app/projects/[projectId]/text-split/useQuestionGeneration.js function useQuestionGeneration (line 9) | function useQuestionGeneration(projectId) { FILE: components/I18nProvider.js function I18nProvider (line 7) | function I18nProvider({ children }) { FILE: components/LanguageSwitcher.js function LanguageSwitcher (line 8) | function LanguageSwitcher() { FILE: components/ModelSelect.js function ModelSelect (line 12) | function ModelSelect({ FILE: components/Navbar/ActionButtons.js function ActionButtons (line 21) | function ActionButtons({ FILE: components/Navbar/ContextBar.js function ContextBar (line 31) | function ContextBar({ projects = [], currentProjectId, onMouseLeave }) { FILE: components/Navbar/DesktopMenus.js function DesktopMenus (line 23) | function DesktopMenus({ FILE: components/Navbar/Logo.js function Logo (line 12) | function Logo({ theme }) { FILE: components/Navbar/MobileDrawer.js function MobileDrawer (line 44) | function MobileDrawer({ FILE: components/Navbar/NavigationTabs.js function NavigationTabs (line 20) | function NavigationTabs({ FILE: components/Navbar/index.js function Navbar (line 30) | function Navbar({ projects = [], currentProject }) { FILE: components/TaskIcon.js function TaskIcon (line 18) | function TaskIcon({ projectId, theme }) { FILE: components/ThemeRegistry.js function ThemeRegistry (line 314) | function ThemeRegistry({ children }) { function InnerThemeRegistry (line 332) | function InnerThemeRegistry({ children }) { FILE: components/common/MessageAlert.js function MessageAlert (line 5) | function MessageAlert({ message, onClose }) { FILE: components/conversations/ConversationContent.js function ConversationContent (line 9) | function ConversationContent({ messages, editMode, onMessageChange, conv... FILE: components/conversations/ConversationHeader.js function ConversationHeader (line 15) | function ConversationHeader({ FILE: components/conversations/ConversationMetadata.js function ConversationMetadata (line 10) | function ConversationMetadata({ conversation }) { FILE: components/conversations/ConversationRatingSection.js function ConversationRatingSection (line 14) | function ConversationRatingSection({ conversation, projectId, onUpdate }) { FILE: components/dataset-square/DatasetSearchBar.js function DatasetSearchBar (line 26) | function DatasetSearchBar() { FILE: components/dataset-square/DatasetSiteCard.js function DatasetSiteCard (line 8) | function DatasetSiteCard({ site }) { FILE: components/dataset-square/DatasetSiteList.js function DatasetSiteList (line 12) | function DatasetSiteList() { FILE: components/datasets/DatasetHeader.js function DatasetHeader (line 14) | function DatasetHeader({ FILE: components/datasets/DatasetMetadata.js function DatasetMetadata (line 11) | function DatasetMetadata({ currentDataset, onViewChunk }) { FILE: components/datasets/DatasetRatingSection.js function DatasetRatingSection (line 19) | function DatasetRatingSection({ dataset, projectId, onUpdate, currentDat... FILE: components/datasets/EditableField.js function getValue (line 22) | function getValue(value, answerType, useMarkdown, t, onOptimize) { function EditableField (line 92) | function EditableField({ FILE: components/datasets/EvalVariantDialog.js function EvalVariantDialog (line 29) | function EvalVariantDialog({ open, onClose, onGenerate, onSave }) { FILE: components/datasets/ImportDatasetDialog.js function ImportDatasetDialog (line 26) | function ImportDatasetDialog({ open, onClose, projectId, onImportSuccess... FILE: components/datasets/NoteInput.js function NoteInput (line 14) | function NoteInput({ FILE: components/datasets/OptimizeDialog.js function OptimizeDialog (line 10) | function OptimizeDialog({ open, onClose, onConfirm }) { FILE: components/datasets/StarRating.js function StarRating (line 11) | function StarRating({ value = 0, onChange, readOnly = false, size = 'med... FILE: components/datasets/TagSelector.js function TagSelector (line 13) | function TagSelector({ FILE: components/datasets/import/FieldMappingStep.js function FieldMappingStep (line 27) | function FieldMappingStep({ previewData, onMappingComplete, onError }) { FILE: components/datasets/import/FileUploadStep.js function FileUploadStep (line 23) | function FileUploadStep({ onDataLoaded, onError }) { FILE: components/datasets/import/ImportProgressStep.js function ImportProgressStep (line 22) | function ImportProgressStep({ projectId, rawData, fieldMapping, sourceIn... FILE: components/datasets/utils/ratingUtils.js constant SCORE_RANGES (line 128) | const SCORE_RANGES = { FILE: components/distill/AutoDistillDialog.js function AutoDistillDialog (line 35) | function AutoDistillDialog({ FILE: components/distill/AutoDistillProgress.js function AutoDistillProgress (line 26) | function AutoDistillProgress({ open, onClose, progress = {} }) { FILE: components/distill/ConfirmDialog.js function ConfirmDialog (line 15) | function ConfirmDialog({ FILE: components/distill/QuestionGenerationDialog.js function QuestionGenerationDialog (line 38) | function QuestionGenerationDialog({ open, onClose, onGenerated, projectI... FILE: components/distill/QuestionListItem.js function QuestionListItem (line 32) | function QuestionListItem({ FILE: components/distill/TagEditDialog.js function TagEditDialog (line 27) | function TagEditDialog({ open, tag, projectId, onClose, onSuccess }) { FILE: components/distill/TagGenerationDialog.js function TagGenerationDialog (line 35) | function TagGenerationDialog({ open, onClose, onGenerated, projectId, pa... FILE: components/distill/TagMenu.js function TagMenu (line 17) | function TagMenu({ anchorEl, open, onClose, onEdit, onDelete }) { FILE: components/distill/TagTreeItem.js function TagTreeItem (line 48) | function TagTreeItem({ FILE: components/home/CreateProjectDialog.js function CreateProjectDialog (line 23) | function CreateProjectDialog({ open, onClose }) { FILE: components/home/HeroSection.js function HeroSection (line 12) | function HeroSection({ onCreateProject }) { FILE: components/home/MigrationDialog.js function MigrationDialog (line 35) | function MigrationDialog({ open, onClose, projectIds = [] }) { FILE: components/home/ParticleBackground.js function ParticleBackground (line 6) | function ParticleBackground() { FILE: components/home/ProjectCard.js function ProjectCard (line 61) | function ProjectCard({ project, onDeleteClick }) { FILE: components/home/ProjectList.js function ProjectList (line 19) | function ProjectList({ projects, onCreateProject }) { FILE: components/home/StatsCard.js function StatsCard (line 20) | function StatsCard({ projects }) { FILE: components/mga/GaPairsIndicator.js function GaPairsIndicator (line 28) | function GaPairsIndicator({ projectId, fileId, fileName = '未命名文件' }) { FILE: components/mga/GaPairsManager.js function GaPairsManager (line 40) | function GaPairsManager({ projectId, fileId, onGaPairsChange }) { FILE: components/playground/ChatMessage.js function ChatMessage (line 17) | function ChatMessage({ message, modelName }) { FILE: components/playground/ModelSelector.js constant ITEM_HEIGHT (line 15) | const ITEM_HEIGHT = 48; constant ITEM_PADDING_TOP (line 16) | const ITEM_PADDING_TOP = 8; function ModelSelector (line 33) | function ModelSelector({ models, selectedModels, onChange }) { FILE: components/questions/QuestionListView.js function QuestionListView (line 27) | function QuestionListView({ FILE: components/questions/QuestionTreeView.js function QuestionTreeView (line 38) | function QuestionTreeView({ FILE: components/settings/BasicSettings.js function BasicSettings (line 8) | function BasicSettings({ projectId }) { FILE: components/settings/ModelSettings.js function ModelSettings (line 46) | function ModelSettings({ projectId }) { FILE: components/settings/TaskSettings.js function TaskSettings (line 28) | function TaskSettings({ projectId }) { FILE: components/tasks/TaskActions.js function TaskActions (line 10) | function TaskActions({ task, onAbort, onDelete }) { FILE: components/tasks/TaskFilters.js function TaskFilters (line 18) | function TaskFilters({ statusFilter, setStatusFilter, typeFilter, setTyp... FILE: components/tasks/TaskProgress.js function TaskProgress (line 8) | function TaskProgress({ task }) { FILE: components/tasks/TaskStatusChip.js function TaskStatusChip (line 8) | function TaskStatusChip({ status }) { FILE: components/tasks/TasksTable.js function TasksTable (line 26) | function TasksTable({ FILE: components/text-split/BatchEditChunkDialog.js function BatchEditChunksDialog (line 33) | function BatchEditChunksDialog({ FILE: components/text-split/ChunkBatchDeleteDialog.js function ChunkBatchDeleteDialog (line 14) | function ChunkBatchDeleteDialog({ open, onClose, onConfirm, loading, cou... FILE: components/text-split/ChunkCard.js function ChunkCard (line 73) | function ChunkCard({ FILE: components/text-split/ChunkDeleteDialog.js function ChunkDeleteDialog (line 6) | function ChunkDeleteDialog({ open, onClose, onConfirm }) { FILE: components/text-split/ChunkFilterDialog.js function ChunkFilterDialog (line 19) | function ChunkFilterDialog({ open, onClose, onApply, initialFilters = {}... FILE: components/text-split/ChunkList.js function ChunkList (line 27) | function ChunkList({ FILE: components/text-split/ChunkListHeader.js function ChunkListHeader (line 20) | function ChunkListHeader({ FILE: components/text-split/ChunkViewDialog.js function ChunkViewDialog (line 8) | function ChunkViewDialog({ open, chunk, onClose }) { FILE: components/text-split/DomainAnalysis.js function TreeNode (line 54) | function TreeNode({ node, level = 0, onEdit, onDelete, onAddChild }) { function DomainTree (line 173) | function DomainTree({ tags, onEdit, onDelete, onAddChild }) { function DomainAnalysis (line 183) | function DomainAnalysis({ projectId, toc = '', loading = false }) { FILE: components/text-split/FileUploader.js function FileUploader (line 19) | function FileUploader({ FILE: components/text-split/LoadingBackdrop.js function LoadingBackdrop (line 5) | function LoadingBackdrop({ open, title, description, progress = null }) { FILE: components/text-split/MarkdownViewDialog.js function MarkdownViewDialog (line 26) | function MarkdownViewDialog({ open, text, onClose, projectId, onSaveSucc... FILE: components/text-split/PdfSettings.js function PdfSettings (line 6) | function PdfSettings({ pdfStrategy, setPdfStrategy, selectedViosnModel, ... FILE: components/text-split/components/DeleteConfirmDialog.js function DeleteConfirmDialog (line 16) | function DeleteConfirmDialog({ open, fileName, onClose, onConfirm }) { FILE: components/text-split/components/DirectoryView.js function DirectoryView (line 19) | function DirectoryView({ items, expandedItems, onToggleItem, level = 0, ... FILE: components/text-split/components/DomainTreeActionDialog.js function DomainTreeActionDialog (line 22) | function DomainTreeActionDialog({ open, onClose, onConfirm, isFirstUploa... FILE: components/text-split/components/DomainTreeView.js function DomainTreeView (line 13) | function DomainTreeView({ nodes = [] }) { FILE: components/text-split/components/FileList.js function FileList (line 49) | function FileList({ FILE: components/text-split/components/FileLoadingProgress.js function FileLoadingProgress (line 37) | function FileLoadingProgress({ fileTask }) { function ProgressSection (line 147) | function ProgressSection({ label, progress, color, mt = 0 }) { FILE: components/text-split/components/PdfProcessingDialog.js function PdfProcessingDialog (line 91) | function PdfProcessingDialog({ FILE: components/text-split/components/TabPanel.js function TabPanel (line 12) | function TabPanel({ value, index, children }) { FILE: components/text-split/components/UploadArea.js function UploadArea (line 20) | function UploadArea({ FILE: constant/index.js constant FILE (line 5) | const FILE = { constant TASK (line 9) | const TASK = { FILE: constant/model.js constant MODEL_PROVIDERS (line 1) | const MODEL_PROVIDERS = [ constant DEFAULT_MODEL_SETTINGS (line 79) | const DEFAULT_MODEL_SETTINGS = { FILE: constant/setting.js constant DEFAULT_SETTINGS (line 2) | const DEFAULT_SETTINGS = { FILE: electron/modules/cache.js function clearCache (line 9) | async function clearCache(app) { FILE: electron/modules/database.js function clearDatabaseCache (line 11) | async function clearDatabaseCache(app) { function initializeDatabase (line 40) | async function initializeDatabase(app) { FILE: electron/modules/db-updater.js function executeSql (line 11) | async function executeSql(dbUrl, sql) { function getSqlConfigs (line 46) | async function getSqlConfigs(userDataPath, resourcesPath, isDev, logger ... function updateUserSqlConfig (line 92) | function updateUserSqlConfig(userDataPath, sqlConfig) { function getSqlsToExecute (line 105) | function getSqlsToExecute(userSqlConfig, appSqlConfig) { function updateDatabase (line 127) | async function updateDatabase(userDataPath, resourcesPath, isDev, logger... FILE: electron/modules/ipc-handlers.js function setupIpcHandlers (line 9) | function setupIpcHandlers(app, isDev) { FILE: electron/modules/logger.js function setupLogging (line 9) | function setupLogging(app) { function setupIpcLogging (line 41) | function setupIpcLogging(ipcMain, app, isDev) { function clearLogs (line 66) | async function clearLogs(app) { FILE: electron/modules/menu.js function createMenu (line 12) | function createMenu(mainWindow, clearCache) { FILE: electron/modules/server.js function checkPort (line 11) | function checkPort(port) { function startNextServer (line 31) | async function startNextServer(port, app) { FILE: electron/modules/updater.js function setupAutoUpdater (line 8) | function setupAutoUpdater(mainWindow) { function checkUpdate (line 61) | async function checkUpdate(isDev) { function downloadUpdate (line 92) | async function downloadUpdate() { function installUpdate (line 106) | function installUpdate() { FILE: electron/modules/window-manager.js function createWindow (line 14) | function createWindow(isDev, port) { function loadAppUrl (line 85) | function loadAppUrl(appUrl) { function openDevTools (line 94) | function openDevTools() { function getMainWindow (line 104) | function getMainWindow() { FILE: hooks/useDebounce.js function useDebounce (line 3) | function useDebounce(value, delay = 500) { FILE: hooks/useFileProcessingStatus.js function useFileProcessingStatus (line 18) | function useFileProcessingStatus() { FILE: hooks/useGenerateDataset.js function useGenerateDataset (line 9) | function useGenerateDataset() { FILE: hooks/useModelPlayground.js function useModelPlayground (line 7) | function useModelPlayground(projectId, defaultModelId = null) { FILE: hooks/useTaskSettings.js function useTaskSettings (line 5) | function useTaskSettings(projectId) { FILE: lib/api/chunk.js function getChunkById (line 9) | async function getChunkById(projectId, chunkId) { FILE: lib/api/file.js function uploadFile (line 13) | async function uploadFile({ file, projectId, fileContent, fileName, t }) { function deleteFile (line 33) | async function deleteFile({ fileToDelete, projectId, domainTreeActionTyp... function getFiles (line 56) | async function getFiles({ projectId, page, size, fileName }) { FILE: lib/api/task.js function getProjectTasks (line 6) | function getProjectTasks(projectId) { FILE: lib/db/base.js function getDbDirectory (line 8) | function getDbDirectory() { constant PROJECT_ROOT (line 44) | let PROJECT_ROOT = ''; function getProjectRoot (line 47) | async function getProjectRoot() { function getProjectPath (line 54) | async function getProjectPath(projectId) { function ensureDbExists (line 60) | async function ensureDbExists() { function readJsonFile (line 69) | async function readJsonFile(filePath) { function writeJsonFile (line 80) | async function writeJsonFile(filePath, data) { function ensureDir (line 111) | async function ensureDir(dirPath) { FILE: lib/db/chunks.js function saveChunks (line 7) | async function saveChunks(chunks) { function getChunkById (line 16) | async function getChunkById(chunkId) { function getChunksByFileIds (line 25) | async function getChunksByFileIds(fileIds) { function getChunkByProjectId (line 44) | async function getChunkByProjectId(projectId, filter) { function deleteChunkById (line 84) | async function deleteChunkById(chunkId) { function getChunkByName (line 101) | async function getChunkByName(projectId, chunkName) { function getChunkContentsByNames (line 121) | async function getChunkContentsByNames(projectId, chunkNames) { function deleteChunksByFileId (line 157) | async function deleteChunksByFileId(projectId, fileId) { function updateChunkById (line 193) | async function updateChunkById(chunkId, chunkData) { function deleteChunkAndFile (line 204) | async function deleteChunkAndFile(projectId, fileName) { function updateChunkContent (line 249) | async function updateChunkContent(chunkId, newContent) { function getChunks (line 265) | async function getChunks(projectId, page = 1, pageSize = 20) { FILE: lib/db/custom-prompts.js function getCustomPrompts (line 11) | async function getCustomPrompts(projectId, promptType = null, language =... function getCustomPrompt (line 46) | async function getCustomPrompt(projectId, promptType, promptKey, languag... function saveCustomPrompt (line 73) | async function saveCustomPrompt(projectId, promptType, promptKey, langua... function deleteCustomPrompt (line 110) | async function deleteCustomPrompt(projectId, promptType, promptKey, lang... function batchSaveCustomPrompts (line 135) | async function batchSaveCustomPrompts(projectId, prompts) { function toggleCustomPrompt (line 156) | async function toggleCustomPrompt(id, isActive) { function getPromptTemplates (line 172) | async function getPromptTemplates() { FILE: lib/db/dataset-conversations.js function buildDatasetConversationWhere (line 7) | function buildDatasetConversationWhere(projectId, filters = {}) { function createDatasetConversation (line 51) | async function createDatasetConversation(data) { function getDatasetConversationById (line 62) | async function getDatasetConversationById(id) { function getDatasetConversationsByPagination (line 79) | async function getDatasetConversationsByPagination(projectId, page = 1, ... function updateDatasetConversation (line 119) | async function updateDatasetConversation(id, data) { function deleteDatasetConversation (line 134) | async function deleteDatasetConversation(id) { function getDatasetConversationStats (line 145) | async function getDatasetConversationStats(projectId) { function getAllDatasetConversations (line 173) | async function getAllDatasetConversations(projectId, filters = {}) { function getAllDatasetConversationIds (line 188) | async function getAllDatasetConversationIds(projectId, filters = {}) { function getDatasetConversationsByQuestionId (line 203) | async function getDatasetConversationsByQuestionId(questionId) { function getConversationNavigationItems (line 217) | async function getConversationNavigationItems(projectId, conversationId,... FILE: lib/db/datasets.js function getDatasetsByPagination (line 16) | async function getDatasetsByPagination( function getDatasets (line 129) | async function getDatasets(projectId, confirmed) { function getDatasetsBatch (line 161) | async function getDatasetsBatch(projectId, confirmed, offset = 0, batchS... function getDatasetsIds (line 188) | async function getDatasetsIds( function getDatasetsCount (line 294) | async function getDatasetsCount(projectId) { function getDatasetsCountByQuestionId (line 311) | async function getDatasetsCountByQuestionId(questionId) { function getDatasetsById (line 328) | async function getDatasetsById(id) { function updateDatasetMetadata (line 346) | async function updateDatasetMetadata(id, { score, tags, note }) { function getUsedCustomTags (line 376) | async function getUsedCustomTags(projectId) { function createDataset (line 408) | async function createDataset(dataset) { function updateDataset (line 419) | async function updateDataset(dataset) { function deleteDataset (line 433) | async function deleteDataset(datasetId) { function updateDatasetEvaluation (line 484) | async function updateDatasetEvaluation(datasetId, score, aiEvaluation) { function getDatasetsCounts (line 500) | async function getDatasetsCounts(projectId) { function getNavigationItems (line 518) | async function getNavigationItems(projectId, datasetId, operateType) { function getBalancedDatasetsByTags (line 545) | async function getBalancedDatasetsByTags(projectId, balanceConfig, confi... function getBalancedDatasetsByTagsBatch (line 591) | async function getBalancedDatasetsByTagsBatch( function getTagsWithDatasetCounts (line 673) | async function getTagsWithDatasetCounts(projectId, confirmed) { function getDatasetsByIds (line 704) | async function getDatasetsByIds(projectId, datasetIds) { function getDatasetsByIdsBatch (line 733) | async function getDatasetsByIdsBatch(projectId, datasetIds, offset = 0, ... FILE: lib/db/evalDatasets.js function createEvalQuestion (line 8) | async function createEvalQuestion(data) { function createManyEvalQuestions (line 22) | async function createManyEvalQuestions(dataArray) { function getEvalQuestions (line 36) | async function getEvalQuestions(projectId) { function buildEvalQuestionWhere (line 60) | function buildEvalQuestionWhere(projectId, { questionType, questionTypes... function getEvalQuestionsWithPagination (line 104) | async function getEvalQuestionsWithPagination(projectId, options = {}) { function getEvalQuestionById (line 150) | async function getEvalQuestionById(id) { function updateEvalQuestion (line 177) | async function updateEvalQuestion(id, data) { function getEvalQuestionsStats (line 194) | async function getEvalQuestionsStats(projectId) { function getEvalQuestionsByChunkId (line 245) | async function getEvalQuestionsByChunkId(chunkId) { function deleteEvalQuestion (line 262) | async function deleteEvalQuestion(id) { FILE: lib/db/evalResults.js function createEvalResult (line 9) | async function createEvalResult(data) { function createManyEvalResults (line 23) | async function createManyEvalResults(dataArray) { function getEvalResultsByTaskId (line 38) | async function getEvalResultsByTaskId(taskId, { page = 1, pageSize = 10,... function getEvalResultsByProjectId (line 88) | async function getEvalResultsByProjectId(projectId) { function updateEvalResult (line 116) | async function updateEvalResult(id, data) { function updateEvalResultsByTaskId (line 134) | async function updateEvalResultsByTaskId(taskId, data) { function deleteEvalResultsByTaskId (line 151) | async function deleteEvalResultsByTaskId(taskId) { function getEvalResultsStats (line 167) | async function getEvalResultsStats(taskId) { function getEvalResult (line 218) | async function getEvalResult(taskId, evalDatasetId) { function upsertEvalResult (line 241) | async function upsertEvalResult(taskId, evalDatasetId, data) { FILE: lib/db/fileToDb.js function main (line 13) | async function main(task = null) { function backupHandle (line 104) | async function backupHandle(projectRoot, projectPath) { function projectHandle (line 117) | async function projectHandle(projectId, projectRoot, projectPath) { function syncOtherConfigFile (line 162) | async function syncOtherConfigFile(projectRoot, projectPath, projectNewI... function tagsHandle (line 176) | async function tagsHandle(projectId, projectPath) { function insertTags (line 191) | async function insertTags(projectId, tags, parentId = null) { function modelConfigHandle (line 208) | async function modelConfigHandle(projectId, projectPath) { function chunkHandle (line 243) | async function chunkHandle(projectId, projectPath) { function questionHandle (line 278) | async function questionHandle(projectId, projectPath) { function datasetHandle (line 310) | async function datasetHandle(projectId, projectPath) { function updateQuestions (line 350) | async function updateQuestions(projectId) { function copyDirRecursive (line 366) | async function copyDirRecursive(src, dest, projectNewId) { function safeReadDir (line 403) | async function safeReadDir(dirPath, options = {}) { FILE: lib/db/files.js function getProjectFileContent (line 16) | async function getProjectFileContent(projectId, fileName) { function getProjectFileContentById (line 38) | async function getProjectFileContentById(projectId, fileId) { FILE: lib/db/ga-pairs.js function getGaPairsByFileId (line 9) | async function getGaPairsByFileId(fileId) { function getGaPairsByProjectId (line 26) | async function getGaPairsByProjectId(projectId) { function createGaPairs (line 50) | async function createGaPairs(gaPairs) { function updateGaPair (line 65) | async function updateGaPair(id, data) { function deleteGaPairsByFileId (line 82) | async function deleteGaPairsByFileId(fileId) { function toggleGaPairActive (line 99) | async function toggleGaPairActive(id, isActive) { function getActiveGaPairsByFileId (line 116) | async function getActiveGaPairsByFileId(fileId) { function batchUpdateGaPairs (line 136) | async function batchUpdateGaPairs(updates) { function saveGaPairs (line 171) | async function saveGaPairs(projectId, fileId, gaPairs) { function hasGaPairs (line 203) | async function hasGaPairs(projectId, fileId) { function getGaPairStats (line 220) | async function getGaPairStats(projectId) { FILE: lib/db/imageDatasets.js function createImageDataset (line 7) | async function createImageDataset(projectId, datasetData) { function getImageDatasets (line 24) | async function getImageDatasets(imageId, page = 1, pageSize = 10) { function updateImageDataset (line 50) | async function updateImageDataset(datasetId, updateData) { function deleteImageDataset (line 65) | async function deleteImageDataset(datasetId) { function getImageDatasetsByProject (line 79) | async function getImageDatasetsByProject(projectId, page = 1, pageSize =... function getImageDatasetById (line 129) | async function getImageDatasetById(datasetId) { function getImageDatasetsTagsByProject (line 191) | async function getImageDatasetsTagsByProject(projectId) { function getImageDatasetsForExport (line 208) | async function getImageDatasetsForExport(projectId, confirmedOnly = fals... FILE: lib/db/images.js function getImages (line 9) | async function getImages(projectId, page = 1, pageSize = 20, imageName =... function createImage (line 187) | async function createImage(projectId, imageData) { function createImages (line 204) | async function createImages(projectId, imagesData) { function getImageById (line 244) | async function getImageById(imageId) { function getImageByName (line 258) | async function getImageByName(projectId, imageName) { function deleteImage (line 275) | async function deleteImage(imageId) { function getImageDetail (line 289) | async function getImageDetail(imageId) { function getImageChunk (line 324) | async function getImageChunk(projectId) { FILE: lib/db/llm-models.js function getLlmModelsByProviderId (line 4) | async function getLlmModelsByProviderId(providerId) { function createLlmModels (line 13) | async function createLlmModels(models) { FILE: lib/db/llm-providers.js function getLlmProviders (line 4) | async function getLlmProviders() { FILE: lib/db/model-config.js function getModelConfigByProjectId (line 5) | async function getModelConfigByProjectId(projectId) { function createInitModelConfig (line 14) | async function createInitModelConfig(data) { function getModelConfigById (line 23) | async function getModelConfigById(id) { function deleteModelConfigById (line 32) | async function deleteModelConfigById(id) { function saveModelConfig (line 41) | async function saveModelConfig(models) { FILE: lib/db/projects.js function createProject (line 11) | async function createProject(projectData) { function isExistByName (line 33) | async function isExistByName(name) { function getProjects (line 48) | async function getProjects() { function getProject (line 104) | async function getProject(projectId) { function updateProject (line 114) | async function updateProject(projectId, projectData) { function deleteProject (line 128) | async function deleteProject(projectId) { function getTaskConfig (line 143) | async function getTaskConfig(projectId) { FILE: lib/db/questionTemplates.js function getTemplates (line 15) | async function getTemplates(projectId, options = {}) { function getTemplateById (line 50) | async function getTemplateById(templateId) { function createTemplate (line 72) | async function createTemplate(projectId, data) { function updateTemplate (line 101) | async function updateTemplate(templateId, data) { function deleteTemplate (line 129) | async function deleteTemplate(templateId) { function getTemplateUsageCount (line 140) | async function getTemplateUsageCount(templateId) { function getTemplatesUsageCount (line 154) | async function getTemplatesUsageCount(templateIds) { FILE: lib/db/questions.js function getQuestions (line 16) | async function getQuestions( function getQuestionsForTree (line 84) | async function getQuestionsForTree(projectId, input, isDistill = false, ... function getQuestionsByTag (line 141) | async function getQuestionsByTag(projectId, tag, input, isDistill = fals... function getAllQuestionsByProjectId (line 240) | async function getAllQuestionsByProjectId(projectId) { function getQuestionsIds (line 262) | async function getQuestionsIds( function getQuestionsByTagName (line 307) | async function getQuestionsByTagName(projectId, tagName) { function getDatasetCountsForQuestions (line 337) | async function getDatasetCountsForQuestions(questionIds) { function getQuestionById (line 456) | async function getQuestionById(id) { function isExistByQuestion (line 467) | async function isExistByQuestion(question, projectId) { function getQuestionsCount (line 482) | async function getQuestionsCount(projectId) { function saveQuestions (line 502) | async function saveQuestions(projectId, questions, chunkId) { function updateQuestion (line 522) | async function updateQuestion(question) { function updateQuestionAnsweredStatus (line 538) | async function updateQuestionAnsweredStatus(projectId, imageId, question... function saveQuestionsWithGaPair (line 564) | async function saveQuestionsWithGaPair(projectId, questions, chunkId, ga... function getQuestionsForChunk (line 588) | async function getQuestionsForChunk(projectId, chunkId) { function deleteQuestion (line 596) | async function deleteQuestion(questionId) { function batchDeleteQuestions (line 614) | async function batchDeleteQuestions(questionIds) { function getQuestionTemplateById (line 629) | async function getQuestionTemplateById(id) { FILE: lib/db/tags.js function getTags (line 9) | async function getTags(projectId) { function getTagsTreeWithQuestionCount (line 18) | async function getTagsTreeWithQuestionCount(projectId, parentId = null) { function getAllLabels (line 123) | async function getAllLabels(tagId) { function createTag (line 147) | async function createTag(projectId, label, parentId) { function updateTag (line 163) | async function updateTag(label, id) { function deleteTag (line 177) | async function deleteTag(id) { function getAllChildTags (line 228) | async function getAllChildTags(parentId, projectId) { function deleteQuestionsByTag (line 264) | async function deleteQuestionsByTag(label, projectId) { function deleteDatasetsByTag (line 284) | async function deleteDatasetsByTag(label, projectId) { function batchSaveTags (line 300) | async function batchSaveTags(projectId, tags) { function insertTags (line 312) | async function insertTags(projectId, tags, parentId = null) { FILE: lib/db/texts.js function getFiles (line 8) | async function getFiles(projectId) { function deleteFile (line 37) | async function deleteFile(projectId, fileName) { FILE: lib/db/upload-files.js function getUploadFilesPagination (line 9) | async function getUploadFilesPagination(projectId, page = 1, pageSize = ... function getUploadFileInfoById (line 35) | async function getUploadFileInfoById(fileId) { function getUploadFilesByProjectId (line 44) | async function getUploadFilesByProjectId(projectId) { function checkUploadFileInfoByMD5 (line 67) | async function checkUploadFileInfoByMD5(projectId, md5) { function createUploadFileInfo (line 81) | async function createUploadFileInfo(fileInfo) { function delUploadFileInfoById (line 90) | async function delUploadFileInfoById(fileId) { FILE: lib/file/file-process/check-file.js function checkMaxSize (line 6) | function checkMaxSize(files) { function getvalidFiles (line 18) | function getvalidFiles(files) { function checkInvalidFiles (line 34) | function checkInvalidFiles(files) { FILE: lib/file/file-process/epub/index.js function processEpub (line 10) | async function processEpub(arrayBuffer) { function getBookTitle (line 99) | function getBookTitle(opfDoc) { function getChapterTitle (line 119) | function getChapterTitle(htmlContent) { function extractBodyContent (line 154) | function extractBodyContent(htmlContent) { FILE: lib/file/file-process/get-content.js function getContent (line 9) | async function getContent(file) { FILE: lib/file/file-process/pdf/default.js function defaultProcessing (line 6) | async function defaultProcessing(projectId, fileName) { FILE: lib/file/file-process/pdf/index.js function processPdf (line 14) | async function processPdf(strategy = 'default', projectId, fileName, opt... FILE: lib/file/file-process/pdf/mineru-local.js constant MINERU_BASE_URL (line 7) | const MINERU_BASE_URL = 'file_parse'; function minerULocalProcessing (line 9) | async function minerULocalProcessing(projectId, fileName, options = {}) { function processingFile (line 69) | async function processingFile(filePath, uploadUrl) { FILE: lib/file/file-process/pdf/mineru.js constant MINERU_API_BASE (line 9) | const MINERU_API_BASE = 'https://mineru.net/api/v4'; constant POLL_INTERVAL (line 10) | const POLL_INTERVAL = 3000; constant MAX_POLL_ATTEMPTS (line 11) | const MAX_POLL_ATTEMPTS = 90; constant PROCESSING_STATES (line 12) | const PROCESSING_STATES = { function minerUProcessing (line 17) | async function minerUProcessing(projectId, fileName, options = {}) { function makeHttpRequest (line 152) | async function makeHttpRequest(url, options) { function uploadFile (line 201) | async function uploadFile(filePath, uploadUrl) { function downloadAndExtractZip (line 241) | async function downloadAndExtractZip(zipUrl, targetDir, fileName) { FILE: lib/file/file-process/pdf/util.js function getFilePageCount (line 4) | async function getFilePageCount(projectId, fileList) { FILE: lib/file/file-process/pdf/vision.js function visionProcessing (line 9) | async function visionProcessing(projectId, fileName, options = {}) { FILE: lib/file/file-process/utils.js function handleLongFileName (line 5) | function handleLongFileName(filename) { FILE: lib/file/split-markdown/core/parser.js function extractOutline (line 10) | function extractOutline(text) { function splitByHeadings (line 35) | function splitByHeadings(text, outline) { FILE: lib/file/split-markdown/core/splitter.js function splitLongSection (line 11) | function splitLongSection(section, maxSplitLength) { function processSections (line 79) | function processSections(sections, outline, minSplitLength, maxSplitLeng... FILE: lib/file/split-markdown/core/summary.js function generateEnhancedSummary (line 13) | function generateEnhancedSummary(section, outline, partIndex = null, tot... function generateSummary (line 178) | function generateSummary(section, outline, partIndex = null, totalParts ... FILE: lib/file/split-markdown/core/toc.js function extractTableOfContents (line 14) | function extractTableOfContents(text, options = {}) { function generateAnchorId (line 71) | function generateAnchorId(title) { function buildNestedToc (line 86) | function buildNestedToc(items, includeLinks) { function tocToMarkdown (line 125) | function tocToMarkdown(toc, options = {}) { function nestedTocToMarkdown (line 139) | function nestedTocToMarkdown(items, indent = 0, includeLinks) { function flatTocToMarkdown (line 166) | function flatTocToMarkdown(items, includeLinks) { FILE: lib/file/split-markdown/index.js function splitMarkdown (line 19) | function splitMarkdown(markdownText, minSplitLength, maxSplitLength) { FILE: lib/file/split-markdown/output/fileWriter.js function saveToSeparateFiles (line 15) | function saveToSeparateFiles(splitResult, baseFilename, callback) { FILE: lib/file/split-markdown/output/formatter.js function combineMarkdown (line 10) | function combineMarkdown(splitResult) { FILE: lib/file/split-markdown/utils/common.js function ensureDirectoryExists (line 12) | function ensureDirectoryExists(directory) { function getFilenameWithoutExt (line 23) | function getFilenameWithoutExt(filePath) { FILE: lib/file/text-splitter.js function splitFileByType (line 18) | async function splitFileByType({ projectPath, fileContent, fileName, pro... function splitProjectFile (line 170) | async function splitProjectFile(projectId, file) { function getProjectChunks (line 221) | async function getProjectChunks(projectId, filter) { function getProjectTocs (line 276) | async function getProjectTocs(projectId) { function getProjectTocByName (line 318) | async function getProjectTocByName(projectId, fileName) { FILE: lib/llm/common/prompt-loader.js function getPromptContent (line 12) | async function getPromptContent(projectId, promptType, promptKey, langua... function getPromptKey (line 37) | function getPromptKey(language, baseKey) { function getLanguageFromKey (line 52) | function getLanguageFromKey(promptKey) { function processPrompt (line 72) | async function processPrompt(language, promptType, baseKey, defaultPromp... FILE: lib/llm/common/question-template.js function getQuestionTemplate (line 1) | function getQuestionTemplate(questionTemplate, language) { FILE: lib/llm/common/util.js function extractJsonFromLLMOutput (line 3) | function extractJsonFromLLMOutput(output) { function safeParseJSON (line 42) | function safeParseJSON(output) { function extractThinkChain (line 79) | function extractThinkChain(text) { function extractAnswer (line 110) | function extractAnswer(text) { function removeLeadingNumber (line 125) | function removeLeadingNumber(label) { FILE: lib/llm/core/index.js class LLMClient (line 15) | class LLMClient { method constructor (line 26) | constructor(config = {}) { method _handleEndpoint (line 50) | _handleEndpoint(provider, endpoint) { method _createClient (line 70) | _createClient(provider, config) { method setProjectId (line 95) | setProjectId(projectId) { method _callClientMethod (line 100) | async _callClientMethod(method, ...args) { method chat (line 140) | async chat(prompt, options = {}) { method chatStreamAPI (line 161) | async chatStreamAPI(prompt, options = {}) { method chatStream (line 176) | async chatStream(prompt, options = {}) { method getResponse (line 186) | async getResponse(prompt, options = {}) { method extractAnswerAndCOT (line 192) | extractAnswerAndCOT(llmRes) { method getResponseWithCOT (line 218) | async getResponseWithCOT(prompt, options = {}) { method getVisionResponse (line 231) | async getVisionResponse(prompt, base64Image, mimeType = 'image/jpeg') { FILE: lib/llm/core/providers/alibailian.js class AlibailianClient (line 9) | class AlibailianClient extends BaseClient { method constructor (line 10) | constructor(config) { method _getModel (line 20) | _getModel() { method chat (line 28) | async chat(messages, options = {}) { method _convertJson (line 79) | _convertJson(messages) { method _formatMessagesForVision (line 87) | _formatMessagesForVision(messages) { FILE: lib/llm/core/providers/base.js function checkOpenAIModel (line 3) | function checkOpenAIModel(endpoint, model) { class BaseClient (line 10) | class BaseClient { method constructor (line 11) | constructor(config) { method chat (line 26) | async chat(messages, options) { method chatStream (line 47) | async chatStream(messages, options) { method _getModel (line 66) | _getModel() { method chatStreamAPI (line 73) | async chatStreamAPI(messages, options) { method _convertJson (line 269) | _convertJson(data) { FILE: lib/llm/core/providers/ollama.js class OllamaClient (line 4) | class OllamaClient extends BaseClient { method constructor (line 5) | constructor(config) { method _getModel (line 13) | _getModel() { method getModels (line 21) | async getModels() { method chatStreamAPI (line 39) | async chatStreamAPI(messages, options) { FILE: lib/llm/core/providers/openai.js class OpenAIClient (line 4) | class OpenAIClient extends BaseClient { method constructor (line 5) | constructor(config) { method _getModel (line 13) | _getModel() { FILE: lib/llm/core/providers/openrouter.js class OpenRouterClient (line 5) | class OpenRouterClient extends BaseClient { method constructor (line 6) | constructor(config) { method _getModel (line 14) | _getModel() { FILE: lib/llm/core/providers/zhipu.js class ZhiPuClient (line 5) | class ZhiPuClient extends BaseClient { method constructor (line 6) | constructor(config) { method _getModel (line 14) | _getModel() { FILE: lib/llm/prompts/addLabel.js constant ADD_LABEL_PROMPT (line 3) | const ADD_LABEL_PROMPT = ` constant ADD_LABEL_PROMPT_EN (line 59) | const ADD_LABEL_PROMPT_EN = ` constant ADD_LABEL_PROMPT_TR (line 115) | const ADD_LABEL_PROMPT_TR = ` function getAddLabelPrompt (line 171) | async function getAddLabelPrompt(language, { label, question }, projectI... FILE: lib/llm/prompts/answer.js constant ANSWER_PROMPT (line 4) | const ANSWER_PROMPT = ` constant ANSWER_PROMPT_EN (line 41) | const ANSWER_PROMPT_EN = ` constant ANSWER_PROMPT_TR (line 76) | const ANSWER_PROMPT_TR = ` function getAnswerPrompt (line 111) | async function getAnswerPrompt(language, { text, question, questionTempl... FILE: lib/llm/prompts/dataClean.js constant DATA_CLEAN_PROMPT (line 3) | const DATA_CLEAN_PROMPT = ` constant DATA_CLEAN_PROMPT_EN (line 48) | const DATA_CLEAN_PROMPT_EN = ` constant DATA_CLEAN_PROMPT_TR (line 93) | const DATA_CLEAN_PROMPT_TR = ` function getDataCleanPrompt (line 146) | async function getDataCleanPrompt(language, { text }, projectId = null) { FILE: lib/llm/prompts/datasetEvaluation.js constant DATASET_EVALUATION_PROMPT (line 3) | const DATASET_EVALUATION_PROMPT = ` constant DATASET_EVALUATION_PROMPT_EN (line 105) | const DATASET_EVALUATION_PROMPT_EN = ` constant DATASET_EVALUATION_PROMPT_TR (line 207) | const DATASET_EVALUATION_PROMPT_TR = ` function getDatasetEvaluationPrompt (line 320) | async function getDatasetEvaluationPrompt(language, { chunkContent, ques... FILE: lib/llm/prompts/distillQuestions.js constant DISTILL_QUESTIONS_PROMPT (line 4) | const DISTILL_QUESTIONS_PROMPT = ` constant DISTILL_QUESTIONS_PROMPT_EN (line 64) | const DISTILL_QUESTIONS_PROMPT_EN = ` constant DISTILL_QUESTIONS_PROMPT_TR (line 124) | const DISTILL_QUESTIONS_PROMPT_TR = ` function distillQuestionsPrompt (line 193) | async function distillQuestionsPrompt( FILE: lib/llm/prompts/distillTags.js constant DISTILL_TAGS_PROMPT (line 3) | const DISTILL_TAGS_PROMPT = ` constant DISTILL_TAGS_PROMPT_EN (line 49) | const DISTILL_TAGS_PROMPT_EN = ` constant DISTILL_TAGS_PROMPT_TR (line 95) | const DISTILL_TAGS_PROMPT_TR = ` function distillTagsPrompt (line 148) | async function distillTagsPrompt( FILE: lib/llm/prompts/enhancedAnswer.js constant ENHANCED_ANSWER_PROMPT (line 4) | const ENHANCED_ANSWER_PROMPT = ` constant ENHANCED_ANSWER_PROMPT_EN (line 48) | const ENHANCED_ANSWER_PROMPT_EN = ` constant ENHANCED_ANSWER_PROMPT_TR (line 92) | const ENHANCED_ANSWER_PROMPT_TR = ` function getEnhancedAnswerPrompt (line 136) | async function getEnhancedAnswerPrompt( constant GA_PROMPT (line 154) | const GA_PROMPT = ` constant GA_PROMPT_EN (line 170) | const GA_PROMPT_EN = ` constant GA_PROMPT_TR (line 186) | const GA_PROMPT_TR = ` function getGAPrompt (line 202) | function getGAPrompt(language, { activeGaPair }) { FILE: lib/llm/prompts/evalQuestion.js constant EVAL_TRUE_FALSE_PROMPT (line 5) | const EVAL_TRUE_FALSE_PROMPT = ` constant EVAL_TRUE_FALSE_PROMPT_EN (line 67) | const EVAL_TRUE_FALSE_PROMPT_EN = ` constant EVAL_SINGLE_CHOICE_PROMPT (line 131) | const EVAL_SINGLE_CHOICE_PROMPT = ` constant EVAL_SINGLE_CHOICE_PROMPT_EN (line 192) | const EVAL_SINGLE_CHOICE_PROMPT_EN = ` constant EVAL_MULTIPLE_CHOICE_PROMPT (line 255) | const EVAL_MULTIPLE_CHOICE_PROMPT = ` constant EVAL_MULTIPLE_CHOICE_PROMPT_EN (line 315) | const EVAL_MULTIPLE_CHOICE_PROMPT_EN = ` constant EVAL_SHORT_ANSWER_PROMPT (line 377) | const EVAL_SHORT_ANSWER_PROMPT = ` constant EVAL_SHORT_ANSWER_PROMPT_EN (line 441) | const EVAL_SHORT_ANSWER_PROMPT_EN = ` constant EVAL_OPEN_ENDED_PROMPT (line 507) | const EVAL_OPEN_ENDED_PROMPT = ` constant EVAL_OPEN_ENDED_PROMPT_EN (line 563) | const EVAL_OPEN_ENDED_PROMPT_EN = ` function getEvalQuestionPrompt (line 631) | async function getEvalQuestionPrompt(language, questionType, { text, num... FILE: lib/llm/prompts/ga-generation.js constant GA_GENERATION_PROMPT (line 8) | const GA_GENERATION_PROMPT = ` constant GA_GENERATION_PROMPT_EN (line 54) | const GA_GENERATION_PROMPT_EN = ` constant GA_GENERATION_PROMPT_TR (line 100) | const GA_GENERATION_PROMPT_TR = ` function getGAGenerationPrompt (line 154) | async function getGAGenerationPrompt(language, { text }, projectId = nul... FILE: lib/llm/prompts/imageAnswer.js constant IMAGE_ANSWER_PROMPT (line 5) | const IMAGE_ANSWER_PROMPT = `{{question}}{{templatePrompt}}{{outputForma... constant IMAGE_ANSWER_PROMPT_EN (line 6) | const IMAGE_ANSWER_PROMPT_EN = IMAGE_ANSWER_PROMPT; constant IMAGE_ANSWER_PROMPT_TR (line 7) | const IMAGE_ANSWER_PROMPT_TR = IMAGE_ANSWER_PROMPT; function getImageAnswerPrompt (line 17) | async function getImageAnswerPrompt(language, { question, questionTempla... FILE: lib/llm/prompts/imageQuestion.js constant IMAGE_QUESTION_PROMPT (line 3) | const IMAGE_QUESTION_PROMPT = ` constant IMAGE_QUESTION_PROMPT_EN (line 55) | const IMAGE_QUESTION_PROMPT_EN = ` constant IMAGE_QUESTION_PROMPT_TR (line 107) | const IMAGE_QUESTION_PROMPT_TR = ` function getImageQuestionPrompt (line 167) | async function getImageQuestionPrompt(language, { number = 3 }, projectI... FILE: lib/llm/prompts/label.js constant LABEL_PROMPT (line 3) | const LABEL_PROMPT = ` constant LABEL_PROMPT_EN (line 59) | const LABEL_PROMPT_EN = ` constant LABEL_PROMPT_TR (line 118) | const LABEL_PROMPT_TR = ` function getLabelPrompt (line 185) | async function getLabelPrompt(language, { text }, projectId = null) { FILE: lib/llm/prompts/labelRevise.js constant LABEL_REVISE_PROMPT (line 8) | const LABEL_REVISE_PROMPT = ` constant LABEL_REVISE_PROMPT_EN (line 82) | const LABEL_REVISE_PROMPT_EN = ` constant LABEL_REVISE_PROMPT_TR (line 156) | const LABEL_REVISE_PROMPT_TR = ` function getLabelRevisePrompt (line 230) | async function getLabelRevisePrompt( FILE: lib/llm/prompts/llmJudge.js constant DEFAULT_SHORT_ANSWER_SCORE_ANCHORS_ZH (line 11) | const DEFAULT_SHORT_ANSWER_SCORE_ANCHORS_ZH = [ constant DEFAULT_SHORT_ANSWER_SCORE_ANCHORS_EN (line 20) | const DEFAULT_SHORT_ANSWER_SCORE_ANCHORS_EN = [ constant DEFAULT_OPEN_ENDED_SCORE_ANCHORS_ZH (line 29) | const DEFAULT_OPEN_ENDED_SCORE_ANCHORS_ZH = [ constant DEFAULT_OPEN_ENDED_SCORE_ANCHORS_EN (line 38) | const DEFAULT_OPEN_ENDED_SCORE_ANCHORS_EN = [ function getDefaultScoreAnchors (line 52) | function getDefaultScoreAnchors(questionType, language = 'zh-CN') { function formatScoreAnchors (line 66) | function formatScoreAnchors(scoreAnchors) { constant SHORT_ANSWER_JUDGE_PROMPT (line 75) | const SHORT_ANSWER_JUDGE_PROMPT = ` constant SHORT_ANSWER_JUDGE_PROMPT_EN (line 127) | const SHORT_ANSWER_JUDGE_PROMPT_EN = ` constant OPEN_ENDED_JUDGE_PROMPT (line 179) | const OPEN_ENDED_JUDGE_PROMPT = ` constant OPEN_ENDED_JUDGE_PROMPT_EN (line 224) | const OPEN_ENDED_JUDGE_PROMPT_EN = ` function buildJudgePrompt (line 282) | async function buildJudgePrompt( FILE: lib/llm/prompts/modelEvaluation.js constant TRUE_FALSE_ANSWER_PROMPT (line 12) | const TRUE_FALSE_ANSWER_PROMPT = ` constant TRUE_FALSE_ANSWER_PROMPT_EN (line 36) | const TRUE_FALSE_ANSWER_PROMPT_EN = ` constant SINGLE_CHOICE_ANSWER_PROMPT (line 60) | const SINGLE_CHOICE_ANSWER_PROMPT = ` constant SINGLE_CHOICE_ANSWER_PROMPT_EN (line 85) | const SINGLE_CHOICE_ANSWER_PROMPT_EN = ` constant MULTIPLE_CHOICE_ANSWER_PROMPT (line 110) | const MULTIPLE_CHOICE_ANSWER_PROMPT = ` constant MULTIPLE_CHOICE_ANSWER_PROMPT_EN (line 136) | const MULTIPLE_CHOICE_ANSWER_PROMPT_EN = ` constant SHORT_ANSWER_PROMPT (line 162) | const SHORT_ANSWER_PROMPT = ` constant SHORT_ANSWER_PROMPT_EN (line 190) | const SHORT_ANSWER_PROMPT_EN = ` constant OPEN_ENDED_ANSWER_PROMPT (line 218) | const OPEN_ENDED_ANSWER_PROMPT = ` constant OPEN_ENDED_ANSWER_PROMPT_EN (line 245) | const OPEN_ENDED_ANSWER_PROMPT_EN = ` function buildAnswerPrompt (line 277) | async function buildAnswerPrompt(questionType, question, options = null,... function buildJudgePrompt (line 331) | async function buildJudgePrompt( FILE: lib/llm/prompts/multiTurnConversation.js constant ASSISTANT_REPLY_PROMPT (line 4) | const ASSISTANT_REPLY_PROMPT = ` constant ASSISTANT_REPLY_PROMPT_EN (line 63) | const ASSISTANT_REPLY_PROMPT_EN = ` constant ASSISTANT_REPLY_PROMPT_TR (line 121) | const ASSISTANT_REPLY_PROMPT_TR = ` constant NEXT_QUESTION_PROMPT (line 180) | const NEXT_QUESTION_PROMPT = ` constant NEXT_QUESTION_PROMPT_EN (line 237) | const NEXT_QUESTION_PROMPT_EN = ` constant NEXT_QUESTION_PROMPT_TR (line 294) | const NEXT_QUESTION_PROMPT_TR = ` function getAssistantReplyPrompt (line 365) | async function getAssistantReplyPrompt( function getNextQuestionPrompt (line 415) | async function getNextQuestionPrompt( FILE: lib/llm/prompts/newAnswer.js constant NEW_ANSWER_PROMPT (line 3) | const NEW_ANSWER_PROMPT = ` constant NEW_ANSWER_PROMPT_EN (line 41) | const NEW_ANSWER_PROMPT_EN = ` constant NEW_ANSWER_PROMPT_TR (line 79) | const NEW_ANSWER_PROMPT_TR = ` function getNewAnswerPrompt (line 117) | async function getNewAnswerPrompt(language, { question, answer, cot, adv... FILE: lib/llm/prompts/optimizeCot.js constant OPTIMIZE_COT_PROMPT (line 3) | const OPTIMIZE_COT_PROMPT = ` constant OPTIMIZE_COT_PROMPT_EN (line 36) | const OPTIMIZE_COT_PROMPT_EN = ` constant OPTIMIZE_COT_PROMPT_TR (line 69) | const OPTIMIZE_COT_PROMPT_TR = ` function getOptimizeCotPrompt (line 112) | async function getOptimizeCotPrompt(language, { originalQuestion, answer... FILE: lib/llm/prompts/question.js constant QUESTION_PROMPT (line 3) | const QUESTION_PROMPT = ` constant QUESTION_PROMPT_EN (line 52) | const QUESTION_PROMPT_EN = ` constant QUESTION_PROMPT_TR (line 101) | const QUESTION_PROMPT_TR = ` constant GA_QUESTION_PROMPT (line 150) | const GA_QUESTION_PROMPT = ` constant GA_QUESTION_PROMPT_EN (line 162) | const GA_QUESTION_PROMPT_EN = ` constant GA_QUESTION_PROMPT_TR (line 177) | const GA_QUESTION_PROMPT_TR = ` function getGAPrompt (line 198) | function getGAPrompt(language, { activeGaPair }) { function getQuestionPrompt (line 222) | async function getQuestionPrompt( FILE: lib/llm/usageLogger.js function getDateString (line 10) | function getDateString() { function logLlmUsage (line 30) | async function logLlmUsage({ function createLatencyTimer (line 68) | function createLatencyTimer() { function extractTokenUsage (line 85) | function extractTokenUsage(response) { function withUsageLogging (line 122) | async function withUsageLogging(llmCall, context) { FILE: lib/services/clean.js function cleanDataForChunk (line 16) | async function cleanDataForChunk(projectId, chunkId, options) { FILE: lib/services/datasets/evaluation.js function evaluateDataset (line 20) | async function evaluateDataset(projectId, datasetId, model, language = '... function batchEvaluateDatasets (line 127) | async function batchEvaluateDatasets(projectId, datasetIds, model, langu... FILE: lib/services/datasets/index.js function optimizeCot (line 23) | async function optimizeCot(originalQuestion, answer, originalCot, langua... function generateDatasetForQuestion (line 46) | async function generateDatasetForQuestion(projectId, questionId, options) { FILE: lib/services/eval/index.js function calculateQuestionCounts (line 17) | function calculateQuestionCounts(textLength, questionGenerationLength, r... function generateEvalQuestionsForChunk (line 81) | async function generateEvalQuestionsForChunk(projectId, chunkId, options) { FILE: lib/services/evaluation/index.js constant EVAL_STATUS (line 11) | const EVAL_STATUS = { function evaluateSingleQuestion (line 28) | async function evaluateSingleQuestion({ function isFormatError (line 104) | function isFormatError(questionType, modelAnswer) { function needsLLMJudge (line 130) | function needsLLMJudge(questionType) { function getModelAnswer (line 137) | async function getModelAnswer(llmClient, evalDataset, language) { function evaluateAnswer (line 161) | async function evaluateAnswer(evalDataset, modelAnswer, judgeLLMClient, ... function evaluateTrueFalse (line 200) | function evaluateTrueFalse(modelAnswer, correctAnswer) { function evaluateSingleChoice (line 221) | function evaluateSingleChoice(modelAnswer, correctAnswer) { function evaluateMultipleChoice (line 237) | function evaluateMultipleChoice(modelAnswer, correctAnswer) { function evaluateWithLLM (line 253) | async function evaluateWithLLM( function parseJudgeResponse (line 289) | function parseJudgeResponse(responseText) { function normalizeText (line 329) | function normalizeText(text) { function extractLetters (line 339) | function extractLetters(answer) { FILE: lib/services/ga/ga-generation.js function generateGaPairs (line 14) | async function generateGaPairs(textContent, projectId, language = '中文') { function callLLMAPI (line 65) | async function callLLMAPI(model, prompt) { function parseGaResponse (line 92) | function parseGaResponse(response) { function getFallbackGaPairs (line 188) | function getFallbackGaPairs() { FILE: lib/services/ga/ga-pairs.js function batchGenerateGaPairs (line 16) | async function batchGenerateGaPairs(projectId, files, modelConfigId, lan... function saveGaPairsForFile (line 106) | async function saveGaPairsForFile(projectId, fileId, gaPairs, appendMode... FILE: lib/services/images/index.js function generateQuestionsForImage (line 29) | async function generateQuestionsForImage(projectId, imageId, options) { function generateDatasetForImage (line 108) | async function generateDatasetForImage(projectId, imageId, question, opt... function importImagesFromDirectories (line 194) | async function importImagesFromDirectories(projectId, directories) { function getImageDetailWithQuestions (line 273) | async function getImageDetailWithQuestions(projectId, imageId) { FILE: lib/services/models.js function getActiveModel (line 10) | async function getActiveModel(projectId = null) { function getModelById (line 39) | async function getModelById(modelConfigId) { FILE: lib/services/multi-turn/index.js function generateMultiTurnConversation (line 20) | async function generateMultiTurnConversation(projectId, questionId, conf... function generateAssistantResponse (line 154) | async function generateAssistantResponse( function generateNextUserMessage (line 196) | async function generateNextUserMessage( function formatConversationHistory (line 238) | function formatConversationHistory(messages, roleA, roleB) { function batchGenerateMultiTurnConversations (line 256) | async function batchGenerateMultiTurnConversations(projectId, questionId... FILE: lib/services/questions/index.js function randomRemoveQuestionMark (line 18) | function randomRemoveQuestionMark(questions, questionMaskRemovingProbabi... function generateQuestionsForChunk (line 41) | async function generateQuestionsForChunk(projectId, chunkId, options) { function extractLabels (line 116) | function extractLabels(data) { function generateQuestionsForChunkWithGA (line 145) | async function generateQuestionsForChunkWithGA(projectId, chunkId, optio... FILE: lib/services/questions/template.js function generateQuestionsFromTemplate (line 19) | async function generateQuestionsFromTemplate(projectId, template) { function generateQuestionsForTextChunks (line 67) | async function generateQuestionsForTextChunks(projectId, template, onlyN... function generateQuestionsForImages (line 132) | async function generateQuestionsForImages(projectId, template, onlyNew =... function generateQuestionsFromTemplateEdit (line 203) | async function generateQuestionsFromTemplateEdit(projectId, template) { function checkTemplateGenerationAvailability (line 248) | async function checkTemplateGenerationAvailability(projectId, sourceType) { FILE: lib/services/tasks/answer-generation.js function processAnswerGenerationTask (line 20) | async function processAnswerGenerationTask(task) { FILE: lib/services/tasks/data-cleaning.js function parseTaskChunkIds (line 13) | function parseTaskChunkIds(note) { function processDataCleaningTask (line 24) | async function processDataCleaningTask(task) { FILE: lib/services/tasks/data-distillation.js function processDataDistillationTask (line 18) | async function processDataDistillationTask(task) { function buildTagTree (line 149) | async function buildTagTree({ function generateQuestionsForTags (line 276) | async function generateQuestionsForTags({ function generateDatasetsForQuestions (line 395) | async function generateDatasetsForQuestions({ taskId, projectId, model, ... function generateMultiTurnDatasetsForQuestions (line 469) | async function generateMultiTurnDatasetsForQuestions({ function getTagDepth (line 587) | function getTagDepth(tag, allTags) { function getTagPath (line 603) | function getTagPath(tag, allTags, projectName = '') { FILE: lib/services/tasks/dataset-evaluation.js function processDatasetEvaluationTask (line 20) | async function processDatasetEvaluationTask(task) { FILE: lib/services/tasks/eval-generation.js function processEvalGenerationTask (line 18) | async function processEvalGenerationTask(task) { FILE: lib/services/tasks/file-processing.js function processFileProcessingTask (line 15) | async function processFileProcessingTask(task) { FILE: lib/services/tasks/image-dataset-generation.js function processImageDatasetGenerationTask (line 21) | async function processImageDatasetGenerationTask(task) { FILE: lib/services/tasks/image-question-generation.js function processImageQuestionGenerationTask (line 18) | async function processImageQuestionGenerationTask(task) { FILE: lib/services/tasks/index.js function processTask (line 28) | async function processTask(taskId) { function updateTask (line 97) | async function updateTask(taskId, data) { function startTaskProcessor (line 121) | async function startTaskProcessor() { FILE: lib/services/tasks/model-evaluation.js function processModelEvaluationTask (line 18) | async function processModelEvaluationTask(task) { function saveEvalResult (line 143) | async function saveEvalResult(projectId, taskId, evalDatasetId, result) { FILE: lib/services/tasks/multi-turn-generation.js function processMultiTurnGenerationTask (line 21) | async function processMultiTurnGenerationTask(task) { FILE: lib/services/tasks/question-generation.js function parseTaskChunkIds (line 13) | function parseTaskChunkIds(note) { function processQuestionGenerationTask (line 24) | async function processQuestionGenerationTask(task) { FILE: lib/services/tasks/recovery.js function recoverPendingTasks (line 18) | async function recoverPendingTasks() { FILE: lib/util/domain-tree.js function handleDomainTree (line 26) | async function handleDomainTree({ FILE: lib/util/file.js function getFileMD5 (line 7) | async function getFileMD5(filePath) { function filterDomainTree (line 18) | function filterDomainTree(tree = []) { function renderFunction (line 30) | async function renderFunction(options) { FILE: lib/util/image.js function getMimeType (line 3) | function getMimeType(filename) { FILE: lib/util/logger.js function log (line 4) | function log(level, ...args) { FILE: lib/util/modelIcon.js function getModelIcon (line 6) | function getModelIcon(modelName) { FILE: lib/util/processInParallel.js function processInParallel (line 8) | async function processInParallel(items, processFunction, concurrencyLimi... FILE: lib/util/providerLogo.js constant PROVIDER_LOGO_MAP (line 1) | const PROVIDER_LOGO_MAP = { constant PROVIDER_PRIORITY (line 15) | const PROVIDER_PRIORITY = ['openrouter']; function normalizeProviderId (line 17) | function normalizeProviderId(providerId = '', providerName = '') { function getProviderLogo (line 34) | function getProviderLogo(providerId = '', providerName = '') { function getProviderPriority (line 39) | function getProviderPriority(providerId = '', providerName = '') { function sortProvidersByPriority (line 45) | function sortProvidersByPriority(list = [], getId = item => item?.id || ...