916 lines
138 KiB
HTML
916 lines
138 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Bitable Records - Interactive View</title>
|
||
<style>
|
||
:root {
|
||
--bg-color: #f8fafc;
|
||
--text-color: #334155;
|
||
--card-bg: #ffffff;
|
||
--border-color: #e2e8f0;
|
||
--accent-color: #3b82f6;
|
||
--hover-bg: #f1f5f9;
|
||
--tag-bg: #e0e7ff;
|
||
--tag-text: #3730a3;
|
||
--text-muted: #64748b;
|
||
}
|
||
body {
|
||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||
background-color: var(--bg-color);
|
||
color: var(--text-color);
|
||
margin: 0;
|
||
padding: 40px 20px;
|
||
line-height: 1.5;
|
||
}
|
||
.container {
|
||
max-width: 1200px;
|
||
margin: 0 auto;
|
||
background: var(--card-bg);
|
||
border-radius: 12px;
|
||
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
||
padding: 30px;
|
||
border: 1px solid var(--border-color);
|
||
}
|
||
h1 {
|
||
text-align: center;
|
||
font-weight: 700;
|
||
margin-bottom: 30px;
|
||
font-size: 28px;
|
||
color: #0f172a;
|
||
}
|
||
.toolbar {
|
||
display: flex;
|
||
gap: 12px;
|
||
margin-bottom: 24px;
|
||
padding: 16px;
|
||
background: #f8fafc;
|
||
border: 1px solid var(--border-color);
|
||
border-radius: 8px;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
}
|
||
.toolbar input, .toolbar select, .toolbar button {
|
||
padding: 8px 12px;
|
||
border: 1px solid #cbd5e1;
|
||
border-radius: 6px;
|
||
font-size: 14px;
|
||
outline: none;
|
||
background: white;
|
||
}
|
||
.toolbar input {
|
||
flex-grow: 1;
|
||
min-width: 200px;
|
||
}
|
||
.toolbar input:focus, .toolbar select:focus {
|
||
border-color: var(--accent-color);
|
||
box-shadow: 0 0 0 2px #dbeafe;
|
||
}
|
||
.toolbar button {
|
||
cursor: pointer;
|
||
font-weight: 500;
|
||
transition: background 0.2s;
|
||
}
|
||
.toolbar button:hover {
|
||
background: var(--hover-bg);
|
||
}
|
||
|
||
.tabs {
|
||
display: flex;
|
||
border-bottom: 2px solid var(--border-color);
|
||
margin-bottom: 20px;
|
||
gap: 8px;
|
||
overflow-x: auto;
|
||
}
|
||
.tab {
|
||
padding: 10px 20px;
|
||
cursor: pointer;
|
||
background: transparent;
|
||
border: none;
|
||
border-bottom: 2px solid transparent;
|
||
margin-bottom: -2px;
|
||
font-weight: 500;
|
||
color: var(--text-muted);
|
||
transition: all 0.2s;
|
||
white-space: nowrap;
|
||
}
|
||
.tab:hover {
|
||
color: var(--text-color);
|
||
background: var(--hover-bg);
|
||
border-radius: 6px 6px 0 0;
|
||
}
|
||
.tab.active {
|
||
color: var(--accent-color);
|
||
border-bottom-color: var(--accent-color);
|
||
}
|
||
|
||
ul.tree {
|
||
list-style-type: none;
|
||
padding-left: 0;
|
||
margin: 0;
|
||
}
|
||
ul.tree ul {
|
||
list-style-type: none;
|
||
padding-left: 28px;
|
||
border-left: 2px solid #cbd5e1;
|
||
margin-left: 14px;
|
||
margin-top: 4px;
|
||
}
|
||
li { margin: 6px 0; }
|
||
.node-content {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 10px 14px;
|
||
background: #ffffff;
|
||
border: 1px solid var(--border-color);
|
||
border-radius: 6px;
|
||
transition: all 0.2s ease;
|
||
box-shadow: 0 1px 2px rgba(0,0,0,0.02);
|
||
}
|
||
.node-content:hover {
|
||
background: var(--hover-bg);
|
||
border-color: #cbd5e1;
|
||
}
|
||
.dimmed .node-content {
|
||
opacity: 0.5;
|
||
background: #f8fafc;
|
||
}
|
||
details { margin-bottom: 6px; }
|
||
summary {
|
||
list-style: none;
|
||
cursor: pointer;
|
||
display: block;
|
||
user-select: none;
|
||
outline: none;
|
||
}
|
||
summary::-webkit-details-marker { display: none; }
|
||
.toggle-icon {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 24px;
|
||
height: 24px;
|
||
margin-right: 8px;
|
||
color: #94a3b8;
|
||
transition: transform 0.2s ease;
|
||
font-family: monospace;
|
||
font-size: 14px;
|
||
}
|
||
details[open] > summary .toggle-icon {
|
||
transform: rotate(90deg);
|
||
color: var(--accent-color);
|
||
}
|
||
.task-left {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-grow: 1;
|
||
min-width: 0;
|
||
}
|
||
.task-title {
|
||
font-weight: 600;
|
||
font-size: 15px;
|
||
color: #1e293b;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
margin-right: 16px;
|
||
}
|
||
.task-meta {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
flex-shrink: 0;
|
||
font-size: 13px;
|
||
color: var(--text-muted);
|
||
}
|
||
.meta-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
}
|
||
.avatar {
|
||
width: 20px;
|
||
height: 20px;
|
||
border-radius: 50%;
|
||
background: #e2e8f0;
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
object-fit: cover;
|
||
}
|
||
.tags {
|
||
display: flex;
|
||
gap: 6px;
|
||
align-items: center;
|
||
}
|
||
.tag {
|
||
background: var(--tag-bg);
|
||
color: var(--tag-text);
|
||
padding: 2px 8px;
|
||
border-radius: 12px;
|
||
font-weight: 600;
|
||
font-size: 12px;
|
||
white-space: nowrap;
|
||
}
|
||
.empty-leaf {
|
||
padding-left: 32px;
|
||
}
|
||
.unnamed-task {
|
||
color: #94a3b8;
|
||
font-style: italic;
|
||
}
|
||
.stats {
|
||
font-size: 14px;
|
||
color: var(--text-muted);
|
||
margin-bottom: 12px;
|
||
text-align: right;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<h1>ALL IN AI</h1>
|
||
|
||
<div id="globalAiSummaryResult" style="display:none;margin-bottom:20px;padding:16px;background:#ffffff;border:1px solid #c4b5fd;border-left:4px solid #8b5cf6;border-radius:8px;font-size:14px;color:#4c1d95;white-space:pre-wrap;line-height:1.6;max-height:500px;overflow-y:auto;box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);"></div>
|
||
<div class="tabs" id="tabContainer"></div>
|
||
|
||
<div class="toolbar" id="toolbarFilters">
|
||
<input type="text" id="searchInput" placeholder="Search tasks...">
|
||
<div style="display:flex; align-items:center; gap:6px;">
|
||
<span style="font-size:14px;color:#64748b;">Date:</span>
|
||
<input type="date" id="dateFrom" title="Start Date">
|
||
<span style="color:#cbd5e1;">-</span>
|
||
<input type="date" id="dateTo" title="End Date">
|
||
</div>
|
||
<select id="statusFilter">
|
||
<option value="">All Statuses</option>
|
||
</select>
|
||
<select id="leaderFilter">
|
||
<option value="">All Leaders</option>
|
||
</select>
|
||
<select id="sortOrder">
|
||
<option value="default">Sort: Default</option>
|
||
<option value="startDate">Sort: Start Date</option>
|
||
<option value="priority">Sort: Priority</option>
|
||
</select>
|
||
<button id="toggleExpand">Toggle Expand All</button>
|
||
</div>
|
||
|
||
<div class="stats" id="statsDisplay"></div>
|
||
<div id="summaryDisplay"></div>
|
||
<div id="aiSummaryResult" style="display:none;margin-bottom:16px;padding:16px;background:#ffffff;border:1px solid #bbf7d0;border-radius:8px;font-size:14px;color:#334155;white-space:pre-wrap;line-height:1.6;max-height:500px;overflow-y:auto;box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);"></div>
|
||
<div id="tree-container"></div>
|
||
</div>
|
||
|
||
<script>
|
||
const tabData = [{"name": "MM Group", "records": [{"fields": {"Days Left": 0, "End Date": 1760112000000, "Estimate Deadline": 1760112000000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "浪潮雲原有的 CUDA driver 與 NCCL 有衝突,在 vLLM >= 0.9.1 & -tp >= 2多卡推理會引發 error,透過更新浪潮雲的 CUDA driver 解決 (fixed by JC)", "Related Documents": null, "Start date": 1759248000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-VL & Qwen3-Omni 環境部署", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14uQadX9Mx", "record_id": "recv14uQadX9Mx"}, {"fields": {"Days Left": 0, "End Date": 1760025600000, "Estimate Deadline": 1760025600000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "Qwen3-Omni\n截止到 Oct 10, 2025,所有測試都是基於 transformers 來推理,目前 vLLM 未支持 audio output,但 Qwen Team 說未來會支持 ⇒ 使用 transformers 來推理會很慢", "Related Documents": null, "Start date": 1759680000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-Omni 能力測試", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14wyuHcyxL", "record_id": "recv14wyuHcyxL"}, {"fields": {"Days Left": 0, "End Date": 1767283200000, "Estimate Deadline": null, "Images": null, "Manday count": "40", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": " MoE Model Fine-tuning", "Related Documents": null, "Start date": 1760889600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "MoE model fine-tuning & evaluation", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14ylsW2dmS", "record_id": "recv14ylsW2dmS"}, {"fields": {"Days Left": 0, "End Date": 1763654400000, "Estimate Deadline": 1763654400000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "21/11 - 已完成初版整理", "Related Documents": [{"file_token": "VqXnb0MNXoTCDqxEhORcel3dnid", "name": "ird-slide-gallery.pptx", "size": 61476043, "tmp_url": "https://open.feishu.cn/open-apis/drive/v1/medias/batch_get_tmp_download_url?file_tokens=VqXnb0MNXoTCDqxEhORcel3dnid", "type": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "url": "https://open.feishu.cn/open-apis/drive/v1/medias/VqXnb0MNXoTCDqxEhORcel3dnid/download"}], "Start date": 1763049600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "PPT 常用素材模版整理", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14yZt4zcX7", "record_id": "recv14yZt4zcX7"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Stalled", "Target Customers": ["IRD"], "Task": "Invoice OCR 功能整合到 Agent workflow", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14z4PTYHGW", "record_id": "recv14z4PTYHGW"}, {"fields": {"Days Left": 0, "End Date": 1760025600000, "Estimate Deadline": 1760025600000, "Images": null, "Manday count": "1", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "HuggingFace Team 從超過 200 個現有數據集來源中彙集而來,旨在提供高品質的 Image-Text pair 數據,幫助模型更好地理解視覺內容並進行推理。\nhttps://huggingface.co/datasets/HuggingFaceM4/FineVision", "Related Documents": null, "Start date": 1759680000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "下載 FineVision 數據集", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14AQDNWGjQ", "record_id": "recv14AQDNWGjQ"}, {"fields": {"Days Left": 0, "End Date": 1760025600000, "Estimate Deadline": 1760025600000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "MGM - POC - VibeInvoiceInvoice OCR\n已有的 OCR models,如 PaddleOCR, PaddleOCR-VL, dots.ocr 雖可做到 Layout Parsing 和 OCR,但無法像 VLM 一樣可以理解 user instruction,尤其對一些手寫修改的部份無法理解,如 Tom 文檔中提到的部份", "Related Documents": null, "Start date": 1759680000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-VL Invoice OCR", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14BTsYhiDQ", "record_id": "recv14BTsYhiDQ"}, {"fields": {"Days Left": 0, "End Date": 1760630400000, "Estimate Deadline": 1760630400000, "Images": null, "Manday count": "3", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": [{"file_token": "FRzDbgUPeoxxTAxLExdcMgdgn4c", "name": "20251015-vlm-and-data-synthesis-v2.pptx", "size": 189262204, "tmp_url": "https://open.feishu.cn/open-apis/drive/v1/medias/batch_get_tmp_download_url?file_tokens=FRzDbgUPeoxxTAxLExdcMgdgn4c", "type": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "url": "https://open.feishu.cn/open-apis/drive/v1/medias/FRzDbgUPeoxxTAxLExdcMgdgn4c/download"}], "Start date": 1760284800000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "多模態模型微調 & 數據合成 slide", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14DFPwYYxK", "record_id": "recv14DFPwYYxK"}, {"fields": {"Days Left": 0, "End Date": 1762444800000, "Estimate Deadline": 1764172800000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "- 完成人臉表情分類的部份,等待與小舟的剖份做整合 (Oct 31, 2025)\n- 整合人臉表人臉表情分類和腦電部份 (Nov 6, 2025)", "Related Documents": [{"file_token": "DBFVbwcL1o0FTaxuHfwclYpBnQg", "name": "2023B - new-20251107-23b-presentation-final.pptx", "size": 41625926, "tmp_url": "https://open.feishu.cn/open-apis/drive/v1/medias/batch_get_tmp_download_url?file_tokens=DBFVbwcL1o0FTaxuHfwclYpBnQg", "type": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "url": "https://open.feishu.cn/open-apis/drive/v1/medias/DBFVbwcL1o0FTaxuHfwclYpBnQg/download"}], "Start date": 1763049600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "23B Annual Presentation (Nov 7, 2025)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14EgZUKHaw", "record_id": "recv14EgZUKHaw"}, {"fields": {"Days Left": 0, "End Date": 1770998400000, "Estimate Deadline": null, "Images": null, "Manday count": "30", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "\n陈文晓1月24日 22:42\ntts-blackbox重构及文档整理:https://github.com/BoardWare-Genius/tts-blackbox\n\n陈文晓1月24日 22:43\n更新至1.0.0版本\n\n\nBenson\n\n陈文晓1月30日 19:08 (编辑过)\n更新asr-blackbox,接入使用fun-asr-nano-2512\n\n陈文晓2月6日 18:34\n重构asr-blackbox,并更新采用uv部署,代码迁移到https://gitea.bwgdi.com/BoardWare-Genius/asr-blackbox\n\n陈文晓2月6日 18:35\n编写gemma translate的接口代码https://gitea.bwgdi.com/BoardWare-Genius/TranslateGemma\n\n陈文晓2月14日 18:15\nasr tts 改造完成,正式部署在05号机子:asr-blackbox(Qwen3-ASR-1.7B), tts-blackbox(VoxCPM)\n\n陈文晓2月14日 18:17\ncurl --location 'http://10.6.80.21:5001/asr-blackbox' \\\n--form 'audio=@\"/home/verachen/Music/prompt_audio_2_en.wav\"' \\\n--form 'model_name=\"qwen\"'\n\n陈文晓2月14日 18:17\ncurl --location 'http://10.6.80.21:5002/tts-blackbox' \\\n--form 'text=\"你好,这是一段测试文本\"' \\\n--form 'model_name=\"voxcpmtts\"'\n\n\nBenson\n\n", "Related Documents": null, "Start date": 1763136000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "TTS ASR系统设计开发", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": "1月24日,陈文晓完成tts-blackbox重构及文档整理并更新至1.0.0版本;1月30日更新asr-blackbox,接入fun-asr-nano-2512;2月6日重构asr-blackbox,采用uv部署并迁移代码,同时编写gemma translate接口代码;2月14日完成asr和tts改造,将asr-blackbox(Qwen3-ASR-1.7B)和tts-blackbox(VoxCPM)正式部署在05号机子,并提供了相应的curl调用示例。", "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HesizlNf", "record_id": "recv14HesizlNf"}, {"fields": {"Days Left": 0, "End Date": 1765900800000, "Estimate Deadline": 1764259200000, "Images": null, "Manday count": "30", "Overdue": [{"text": "🚨 Overdue", "type": "text"}], "Priority": "Normal", "Progress notes": "TTS 并发测试", "Related Documents": null, "Start date": 1759939200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "测试相关tts并发问题(melotts, indextts, cosyvoicetts, voxcpm等)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HL5yZZlp", "record_id": "recv14HL5yZZlp"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "-MeloTTS并发优化打包到harbor v0.0.3\n-CosyVoice并发优化不明显", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "TTS并发优化", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HL5ygMxT", "record_id": "recv14HL5ygMxT"}, {"fields": {"Days Left": 0, "End Date": 1768492800000, "Estimate Deadline": 1768492800000, "Images": null, "Manday count": "20", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "TTS综合测试 TTS 并发测试", "Related Documents": null, "Start date": 1763395200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "TTS功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HL5yAdNw", "record_id": "recv14HL5yAdNw"}, {"fields": {"Days Left": -82, "End Date": null, "Estimate Deadline": 1767110400000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "陈文晓2025年12月4日\n现已接通大模型部分,rag-blackbox还没能完全测试可用\n\n吴嘉泰2025年12月12日\nrag-blackbox 接通完成,需要对请求模型参数做更多细节比对\n\n吴嘉泰2025年12月19日\n增加历史会话功能,参数增添了temperature,但是\"presence_penalty\" , \"frequency_penalty\" , \"repetition_penalty\"等还没加成。另外还有rag upsert功能没对结果(谨慎添加)。", "Related Documents": null, "Start date": 1764604800000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "配合小舟BarcoOne对接blackbox", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}, {"avatar_url": "https://s1-imfile.feishucdn.com/static-resource/v1/v3_00c0_ba335016-952c-4498-a832-193c6158a0ag~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "吴嘉泰", "id": "ou_cff77177e8bb971c1565f1982212178c", "name": "吴嘉泰"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HL5y61YP", "record_id": "recv14HL5y61YP"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1763136000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "“令人心动的Idea”项目及安排管理", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv14HL5yHept", "record_id": "recv14HL5yHept"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "嗑点啦", "Task Description": "1. 代码功能开发\n2. 呈现形式展示\n3. 對接到OmniChat 2.0框架(用戶記憶,工具調用,多模態交互優化,調研對比OVA OS功能)", "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv8I35tzI9Nm", "record_id": "recv8I35tzI9Nm"}, {"fields": {"Days Left": 0, "End Date": 1770307200000, "Estimate Deadline": 1766678400000, "Images": [{"file_token": "A5UbblXl9oqkC1xMyMjcbYBrnAd", "name": "image.png", "size": 22807, "tmp_url": "https://open.feishu.cn/open-apis/drive/v1/medias/batch_get_tmp_download_url?file_tokens=A5UbblXl9oqkC1xMyMjcbYBrnAd", "type": "image/png", "url": "https://open.feishu.cn/open-apis/drive/v1/medias/A5UbblXl9oqkC1xMyMjcbYBrnAd/download"}], "Manday count": "25", "Overdue": [{"text": "🚨 Overdue", "type": "text"}], "Priority": "Important", "Progress notes": "1. 客户端服务端建立 2. 音频采集", "Related Documents": null, "Start date": 1763913600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "AI-Translation POC", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv3aVQF6p1ct", "record_id": "recv3aVQF6p1ct"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1764172800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1763136000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "C2项目PPT准备和答辩准备", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv15CGpKwiET", "record_id": "recv15CGpKwiET"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "记忆力小模型方案设计", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": "该内容是关于“记忆力小模型方案设计”的一条记录,状态为“Normal”(正常),且“Not yet started”(尚未开始),负责人为马其远。", "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv16dagLhQxV", "record_id": "recv16dagLhQxV"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "公开数据集收集和自制数据集", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": "该内容涉及“公开数据集收集和自制数据集”,状态为“Not yet started”(尚未开始),负责人为马其远,状态标记为“✅ Normal”(正常)。", "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv16ea1L3da3", "record_id": "recv16ea1L3da3"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "VLA数据合成相关文献调研", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": "对VLA数据合成相关文献的调研任务,状态为“Normal”且“Not yet started”,负责人为马其远。", "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv16enmRVLVN", "record_id": "recv16enmRVLVN"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "Step-Audio TTS Testing", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "step-audio2功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv14HL5yAdNw"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS功能测试", "text_arr": ["TTS功能测试"], "type": "text"}]}, "id": "recv2erLxOdxFZ", "record_id": "recv2erLxOdxFZ"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Stalled", "Target Customers": ["IRD"], "Task": "VLM 與小舟眼鏡對接 (Qwen3-Omni/Qwen3-VL)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv2OFArNTsJG", "record_id": "recv2OFArNTsJG"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "cosyvoice功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv14HL5yAdNw"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS功能测试", "text_arr": ["TTS功能测试"], "type": "text"}]}, "id": "recv3aYh0iu3Uz", "record_id": "recv3aYh0iu3Uz"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "indextts2功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv14HL5yAdNw"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS功能测试", "text_arr": ["TTS功能测试"], "type": "text"}]}, "id": "recv3aYyDTvaeo", "record_id": "recv3aYyDTvaeo"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "melotts功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv14HL5yAdNw"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS功能测试", "text_arr": ["TTS功能测试"], "type": "text"}]}, "id": "recv3aYCzDRHOt", "record_id": "recv3aYCzDRHOt"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "voxcpm功能测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv14HL5yAdNw"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS功能测试", "text_arr": ["TTS功能测试"], "type": "text"}]}, "id": "recv3aZaEHoBQa", "record_id": "recv3aZaEHoBQa"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1762963200000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1760457600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Video-Understanding的Paper", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv15CxDaPAPF", "record_id": "recv15CxDaPAPF"}, {"fields": {"Days Left": -73, "End Date": null, "Estimate Deadline": 1767888000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1765123200000, "Status": "Stalled", "Target Customers": ["IRD"], "Task": "具身智能大模型记忆力", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv16egKJCLlj", "record_id": "recv16egKJCLlj"}, {"fields": {"Days Left": -98, "End Date": null, "Estimate Deadline": 1765728000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": 1764000000000, "Status": "Wishlist", "Target Customers": ["IRD"], "Task": "ASR Model Comparison", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3aVQF6p1ct"], "table_id": "tblcK7RNfVTE0krF", "text": "AI-Translation POC", "text_arr": ["AI-Translation POC"], "type": "text"}]}, "id": "recv3yf3F5ZCBf", "record_id": "recv3yf3F5ZCBf"}, {"fields": {"Days Left": 0, "End Date": 1763913600000, "Estimate Deadline": 1763913600000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "客户端代码编写,可使用麦克风或者wav测试", "Related Documents": null, "Start date": 1763654400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Client POC", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3aVQF6p1ct"], "table_id": "tblcK7RNfVTE0krF", "text": "AI-Translation POC", "text_arr": ["AI-Translation POC"], "type": "text"}]}, "id": "recv3yfoytpc9n", "record_id": "recv3yfoytpc9n"}, {"fields": {"Days Left": 0, "End Date": 1766073600000, "Estimate Deadline": 1766073600000, "Images": null, "Manday count": "12.5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": 1764086400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Server Websocket POC", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3aVQF6p1ct"], "table_id": "tblcK7RNfVTE0krF", "text": "AI-Translation POC", "text_arr": ["AI-Translation POC"], "type": "text"}]}, "id": "recv3yfoNHyJsj", "record_id": "recv3yfoNHyJsj"}, {"fields": {"Days Left": 0, "End Date": 1766073600000, "Estimate Deadline": 1765728000000, "Images": null, "Manday count": "1", "Overdue": [{"text": "🚨 Overdue", "type": "text"}], "Priority": null, "Progress notes": "已解决\n1. 已初步使用fsmn-vad进行分片,但是效果不太理想,需要再研究一下", "Related Documents": null, "Start date": 1763654400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Audio segmentation", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yfoNHyJsj"], "table_id": "tblcK7RNfVTE0krF", "text": "Server Websocket POC", "text_arr": ["Server Websocket POC"], "type": "text"}]}, "id": "recv3DMyXcXXFB", "record_id": "recv3DMyXcXXFB"}, {"fields": {"Days Left": 0, "End Date": 1764000000000, "Estimate Deadline": 1764000000000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "已验证funasr vad->stepaudio整体流程可行", "Related Documents": null, "Start date": 1763654400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "整体流程快速验证", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yfoNHyJsj"], "table_id": "tblcK7RNfVTE0krF", "text": "Server Websocket POC", "text_arr": ["Server Websocket POC"], "type": "text"}]}, "id": "recv3DM2TeDNCz", "record_id": "recv3DM2TeDNCz"}, {"fields": {"Days Left": 0, "End Date": 1765814400000, "Estimate Deadline": 1765468800000, "Images": null, "Manday count": "8", "Overdue": [{"text": "🚨 Overdue", "type": "text"}], "Priority": null, "Progress notes": "初步web-demo已成形,支持文件上传和实时翻译", "Related Documents": null, "Start date": 1764086400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "简单的web-demo", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yfoNHyJsj"], "table_id": "tblcK7RNfVTE0krF", "text": "Server Websocket POC", "text_arr": ["Server Websocket POC"], "type": "text"}]}, "id": "recv3DKhNQ6HBG", "record_id": "recv3DKhNQ6HBG"}, {"fields": {"Days Left": 0, "End Date": 1766419200000, "Estimate Deadline": 1766678400000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": 1766332800000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "环境打包测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3aVQF6p1ct"], "table_id": "tblcK7RNfVTE0krF", "text": "AI-Translation POC", "text_arr": ["AI-Translation POC"], "type": "text"}]}, "id": "recv3yfoZzXNKg", "record_id": "recv3yfoZzXNKg"}, {"fields": {"Days Left": 0, "End Date": 1764086400000, "Estimate Deadline": 1764086400000, "Images": null, "Manday count": "1.5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "建立websocket服务,通过websocket传输音频流,并且返回翻译结果给客户端", "Related Documents": null, "Start date": 1763654400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "WebSocket server & API development", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yfoNHyJsj"], "table_id": "tblcK7RNfVTE0krF", "text": "Server Websocket POC", "text_arr": ["Server Websocket POC"], "type": "text"}]}, "id": "recv3DMjBzsnAQ", "record_id": "recv3DMjBzsnAQ"}, {"fields": {"Days Left": -98, "End Date": null, "Estimate Deadline": 1765728000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "1. 已部署环境,初步测试可粤语翻译英语", "Related Documents": null, "Start date": 1764000000000, "Status": "Wishlist", "Target Customers": ["IRD"], "Task": "openai whisper large v3", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yf3F5ZCBf"], "table_id": "tblcK7RNfVTE0krF", "text": "ASR Model Comparison", "text_arr": ["ASR Model Comparison"], "type": "text"}]}, "id": "recv3DSRricDzs", "record_id": "recv3DSRricDzs"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1765728000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "1. 已部署环境,初步测试可粤语翻译英语", "Related Documents": null, "Start date": 1764000000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Step-Audio v2", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yf3F5ZCBf"], "table_id": "tblcK7RNfVTE0krF", "text": "ASR Model Comparison", "text_arr": ["ASR Model Comparison"], "type": "text"}]}, "id": "recv3DSWdhCzYC", "record_id": "recv3DSWdhCzYC"}, {"fields": {"Days Left": -98, "End Date": null, "Estimate Deadline": 1765728000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": 1764000000000, "Status": "Wishlist", "Target Customers": ["IRD"], "Task": "qwen3-livetranslate-flash", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yf3F5ZCBf"], "table_id": "tblcK7RNfVTE0krF", "text": "ASR Model Comparison", "text_arr": ["ASR Model Comparison"], "type": "text"}]}, "id": "recv3DSZYjEUFy", "record_id": "recv3DSZYjEUFy"}, {"fields": {"Days Left": 0, "End Date": 1770307200000, "Estimate Deadline": 1770307200000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "使用qwen3+gemma流程来进行翻译", "Related Documents": null, "Start date": 1769961600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "qwen3+gemma", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yf3F5ZCBf"], "table_id": "tblcK7RNfVTE0krF", "text": "ASR Model Comparison", "text_arr": ["ASR Model Comparison"], "type": "text"}]}, "id": "recvarpqBaE6gF", "record_id": "recvarpqBaE6gF"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "More", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3yf3F5ZCBf"], "table_id": "tblcK7RNfVTE0krF", "text": "ASR Model Comparison", "text_arr": ["ASR Model Comparison"], "type": "text"}]}, "id": "recv3DT0CG4SeX", "record_id": "recv3DT0CG4SeX"}, {"fields": {"Days Left": 0, "End Date": 1766419200000, "Estimate Deadline": 1766678400000, "Images": null, "Manday count": "0.5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": 1766419200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "代码文档整理工作", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv3aVQF6p1ct"], "table_id": "tblcK7RNfVTE0krF", "text": "AI-Translation POC", "text_arr": ["AI-Translation POC"], "type": "text"}]}, "id": "recv3DTrxcbDtu", "record_id": "recv3DTrxcbDtu"}, {"fields": {"Days Left": 8, "End Date": 1773936000000, "Estimate Deadline": 1774886400000, "Images": null, "Manday count": "10", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1772380800000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "任务安排时间管理关联工具", "Task Description": "1. 對接飛書,匯總所有Dashboard的信息到同一工具/系統\n2. 系統能跟蹤超時task并且提醒跟進(長時間沒進度的也提醒)\n3. 能產生匯總報表,減少每月/每季度給管理層的“手工”活\n4. 能產生一些insights(產生Task的相關簡介與總結)\n5. Think:飛書Dashboard是否是我們想要的進度跟蹤工具ITSM", "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv8I3sg7YHaA", "record_id": "recv8I3sg7YHaA"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1768752000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "管家日记", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv9epNVHpIyg", "record_id": "recv9epNVHpIyg"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1769788800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 初步建立項目構建需求", "Related Documents": null, "Start date": 1764518400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Video_detection", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv3OyfslKdIO", "record_id": "recv3OyfslKdIO"}, {"fields": {"Days Left": -70, "End Date": null, "Estimate Deadline": 1768147200000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1765123200000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "Client Development", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OyfslKdIO"], "table_id": "tblcK7RNfVTE0krF", "text": "Video_detection", "text_arr": ["Video_detection"], "type": "text"}]}, "id": "recv3OBlDGdSlW", "record_id": "recv3OBlDGdSlW"}, {"fields": {"Days Left": -66, "End Date": null, "Estimate Deadline": 1768492800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1764518400000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "Video Detection Development", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OyfslKdIO"], "table_id": "tblcK7RNfVTE0krF", "text": "Video_detection", "text_arr": ["Video_detection"], "type": "text"}]}, "id": "recv3OByNf0JHN", "record_id": "recv3OByNf0JHN"}, {"fields": {"Days Left": -70, "End Date": null, "Estimate Deadline": 1768147200000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1765123200000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "前端設計", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OBlDGdSlW"], "table_id": "tblcK7RNfVTE0krF", "text": "Client Development", "text_arr": ["Client Development"], "type": "text"}]}, "id": "recv3OBzq3VBvS", "record_id": "recv3OBzq3VBvS"}, {"fields": {"Days Left": -51, "End Date": null, "Estimate Deadline": 1769788800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1768752000000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "Environment Packaging and Testing", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OyfslKdIO"], "table_id": "tblcK7RNfVTE0krF", "text": "Video_detection", "text_arr": ["Video_detection"], "type": "text"}]}, "id": "recv3OBPrSM1EZ", "record_id": "recv3OBPrSM1EZ"}, {"fields": {"Days Left": -108, "End Date": null, "Estimate Deadline": 1764864000000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1764518400000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "程序架構重構及驗證", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OByNf0JHN"], "table_id": "tblcK7RNfVTE0krF", "text": "Video Detection Development", "text_arr": ["Video Detection Development"], "type": "text"}]}, "id": "recv3OBUF9G4KC", "record_id": "recv3OBUF9G4KC"}, {"fields": {"Days Left": -94, "End Date": null, "Estimate Deadline": 1766073600000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1765728000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "自定義配置監控m3u8", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OByNf0JHN"], "table_id": "tblcK7RNfVTE0krF", "text": "Video Detection Development", "text_arr": ["Video Detection Development"], "type": "text"}]}, "id": "recv3OBV8ye45V", "record_id": "recv3OBV8ye45V"}, {"fields": {"Days Left": -73, "End Date": null, "Estimate Deadline": 1767888000000, "Images": null, "Manday count": "6", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1767283200000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "異常日誌存儲", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OByNf0JHN"], "table_id": "tblcK7RNfVTE0krF", "text": "Video Detection Development", "text_arr": ["Video Detection Development"], "type": "text"}]}, "id": "recv3OBVjJXSRJ", "record_id": "recv3OBVjJXSRJ"}, {"fields": {"Days Left": -66, "End Date": null, "Estimate Deadline": 1768492800000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1768147200000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "異常通知", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OByNf0JHN"], "table_id": "tblcK7RNfVTE0krF", "text": "Video Detection Development", "text_arr": ["Video Detection Development"], "type": "text"}]}, "id": "recv3OBVsC0Rpz", "record_id": "recv3OBVsC0Rpz"}, {"fields": {"Days Left": -59, "End Date": null, "Estimate Deadline": 1769097600000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1768752000000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "部署服務", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OBPrSM1EZ"], "table_id": "tblcK7RNfVTE0krF", "text": "Environment Packaging and Testing", "text_arr": ["Environment Packaging and Testing"], "type": "text"}]}, "id": "recv3OCbX5h24H", "record_id": "recv3OCbX5h24H"}, {"fields": {"Days Left": -52, "End Date": null, "Estimate Deadline": 1769702400000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1769356800000, "Status": "Not yet started", "Target Customers": ["IRD"], "Task": "測試", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_1dcd6032-2d98-40f5-81f7-026469c37f8g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Timous", "id": "ou_17bdc3e278bb787efd6aa36e8fe59bdb", "name": "Timous"}], "总结": null, "父记录": [{"record_ids": ["recv3OBPrSM1EZ"], "table_id": "tblcK7RNfVTE0krF", "text": "Environment Packaging and Testing", "text_arr": ["Environment Packaging and Testing"], "type": "text"}]}, "id": "recv3OCcnexGa3", "record_id": "recv3OCcnexGa3"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": "1", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "更新 LLaMA-Factory 的環境來適應新的 MoE Models", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "更新 LLaMA-Factory 環境適應新 MoE Models", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv14ylsW2dmS"], "table_id": "tblcK7RNfVTE0krF", "text": "MoE model fine-tuning & evaluation", "text_arr": ["MoE model fine-tuning & evaluation"], "type": "text"}]}, "id": "recv3Wx8mHnaBt", "record_id": "recv3Wx8mHnaBt"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": "3", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "LLaMA-Factory 使用 DeepSpeed ZeRO-1 進行 DDP training 可以運行,但 DeepSpeed ZeRO-2 會 timeout (-tp =2 OK, -tp > 2 不OK),前者雖可運行但 training 速度慢 ⇒ 嘗試使用別的 training framework, e.g. MS-Swift (使用 Megatron-LM 作為 backend)", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "DeepSpeed ZeRO-1/ZeRO-2 進行 MoE Model Fine-tuning", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv14ylsW2dmS"], "table_id": "tblcK7RNfVTE0krF", "text": "MoE model fine-tuning & evaluation", "text_arr": ["MoE model fine-tuning & evaluation"], "type": "text"}]}, "id": "recv3WxeMPTNoZ", "record_id": "recv3WxeMPTNoZ"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "安裝 MS-Swift & Megatron-Swift 環境 (Megatron-LM as a backend for MoE model fine-tuning)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv14ylsW2dmS"], "table_id": "tblcK7RNfVTE0krF", "text": "MoE model fine-tuning & evaluation", "text_arr": ["MoE model fine-tuning & evaluation"], "type": "text"}]}, "id": "recv3WxBWPSQlJ", "record_id": "recv3WxBWPSQlJ"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv14ylsW2dmS"], "table_id": "tblcK7RNfVTE0krF", "text": "MoE model fine-tuning & evaluation", "text_arr": ["MoE model fine-tuning & evaluation"], "type": "text"}]}, "id": "recv3WxC3sNgYo", "record_id": "recv3WxC3sNgYo"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "基於 OpenCompass & VLMEvalKit 評估模型", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "評估 Fine-tuned Qwen3 Series", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv14ylsW2dmS"], "table_id": "tblcK7RNfVTE0krF", "text": "MoE model fine-tuning & evaluation", "text_arr": ["MoE model fine-tuning & evaluation"], "type": "text"}]}, "id": "recv3WxLgc00mP", "record_id": "recv3WxLgc00mP"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "以 Qwen3-30B-A3B-2507 來做 ablation study,找出對 MoE Models SFT 影響的 factors", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-30B-A3B-2507", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv3WxC3sNgYo"], "table_id": "tblcK7RNfVTE0krF", "text": "基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)", "text_arr": ["基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)"], "type": "text"}]}, "id": "recv3WxYwnW9Vk", "record_id": "recv3WxYwnW9Vk"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "從以上的 insights 對 Qwen3-VL 做同樣的實驗", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-VL-30B-A3B", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv3WxC3sNgYo"], "table_id": "tblcK7RNfVTE0krF", "text": "基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)", "text_arr": ["基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)"], "type": "text"}]}, "id": "recv3Wy2le6vKD", "record_id": "recv3Wy2le6vKD"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "從以上的 insights 對 Qwen3-Omni 做同樣的實驗", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Qwen3-Omni-30B-A3B", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv3WxC3sNgYo"], "table_id": "tblcK7RNfVTE0krF", "text": "基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)", "text_arr": ["基於 Megatron-Core 對 MoE Model 進行 Fine-tuning(澳門文旅數據)"], "type": "text"}]}, "id": "recv3Wy38gL1dd", "record_id": "recv3Wy38gL1dd"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": "3", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": "測試不同部署分式,對模型推理的影響", "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "優化評估速度", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv3WxLgc00mP"], "table_id": "tblcK7RNfVTE0krF", "text": "評估 Fine-tuned Qwen3 Series", "text_arr": ["評估 Fine-tuned Qwen3 Series"], "type": "text"}]}, "id": "recv3WymweZAPn", "record_id": "recv3WymweZAPn"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1768579200000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "1. Pydantic AI\n2. LangGraph\n3. Claude Agent SDK / OpenAI Agent SDK\n4. AutoGen / CrewAI \n.\n.", "Related Documents": null, "Start date": 1767542400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "AI agent framework survey", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv3WyOUGhXKF", "record_id": "recv3WyOUGhXKF"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "基于Pipecat及Livekit开始重构VLM接口开发,实现新的三段式高并发音视频框架\n1. Pipecat深度调研\n2. Livekit深度调研及调优\n3. 接口重构\n4. 引入简单的上下文Context及用户关联 (同步调研Mem系统的集成)", "Related Documents": null, "Start date": 1764518400000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "VLM Pipecat及Livekit接口框架研发", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}, {"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv46eEPKgiBY", "record_id": "recv46eEPKgiBY"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1764604800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "提供webrtc服务", "Related Documents": null, "Start date": 1764518400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "livekit集群部署", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}, {"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv4cqqCvb9fc", "record_id": "recv4cqqCvb9fc"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1764604800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "提供模型能力", "Related Documents": null, "Start date": 1764604800000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "llm, vlm, omni模型接口支持", "Task Description": null, "Task leader": [{"avatar_url": "https://s1-imfile.feishucdn.com/static-resource/v1/v3_00c0_ba335016-952c-4498-a832-193c6158a0ag~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "吴嘉泰", "id": "ou_cff77177e8bb971c1565f1982212178c", "name": "吴嘉泰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv4hd9KKlvsz", "record_id": "recv4hd9KKlvsz"}, {"fields": {"Days Left": -94, "End Date": null, "Estimate Deadline": 1766073600000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "框架研发", "Related Documents": null, "Start date": 1765728000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "框架功能开发", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}, {"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv4hdxp4fKDb", "record_id": "recv4hdxp4fKDb"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1766073600000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "vllm-omni", "Related Documents": null, "Start date": 1764777600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "vllm-omni env", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv4v1eNFWJ9Y", "record_id": "recv4v1eNFWJ9Y"}, {"fields": {"Days Left": -45, "End Date": null, "Estimate Deadline": 1770307200000, "Images": null, "Manday count": "4", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1764950400000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "算力预约系统", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv4QhNX63GnG", "record_id": "recv4QhNX63GnG"}, {"fields": {"Days Left": -52, "End Date": null, "Estimate Deadline": 1769702400000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 在Ubuntu环境下安装IsaacLab\n2. 熟悉IsaacSim手动建模流程\n3. 熟悉Python自动化建模流程", "Related Documents": null, "Start date": 1764259200000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "IsaacLab仿真", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv4QjAbFStod", "record_id": "recv4QjAbFStod"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1765468800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "测试视频功能", "Related Documents": null, "Start date": 1765382400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "livekit实时视频测试", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}, {"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv5qOvKDVbKA", "record_id": "recv5qOvKDVbKA"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1766505600000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 提供asr模型服务", "Related Documents": null, "Start date": 1766419200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "asr模型服务支持", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv6a2p35mAxi", "record_id": "recv6a2p35mAxi"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1766678400000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 提供tts模型服务", "Related Documents": null, "Start date": 1766592000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "tts模型服务支持", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv6a2zMurm6R", "record_id": "recv6a2zMurm6R"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1767024000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 解决pipecat以及livekit agent的组件对接", "Related Documents": null, "Start date": 1766937600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "livekit agent开发", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv6VXcWBE8vE", "record_id": "recv6VXcWBE8vE"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1767801600000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. 解决僵尸进程问题", "Related Documents": null, "Start date": 1767715200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "livekit server与livekit agent的僵尸进程bug", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv6VXqbO1jWx", "record_id": "recv6VXqbO1jWx"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1767369600000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1767283200000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "修复vlm对图片支持的bug", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv7u9gP5MmDT", "record_id": "recv7u9gP5MmDT"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1768492800000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "https://github.com/yusufkaraaslan/Skill_Seekers", "Related Documents": null, "Start date": 1768233600000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Agent Skills", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv7YYrygVobu", "record_id": "recv7YYrygVobu"}, {"fields": {"Days Left": -73, "End Date": null, "Estimate Deadline": 1767888000000, "Images": null, "Manday count": "5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1767542400000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "具身智能网球机项目方案", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv81rTTw3hf7", "record_id": "recv81rTTw3hf7"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1767888000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "网球机底盘制作", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv81upnlaZAh", "record_id": "recv81upnlaZAh"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1768147200000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "机械臂演示方案", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00bu_cc39b281-29de-4715-8848-5450b68f7f3g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "马其远", "id": "ou_ba9ac73ef517710a3f17465d7366c3e4", "name": "马其远"}], "总结": null, "父记录": [{"record_ids": null, "table_id": "tblcK7RNfVTE0krF", "text": null, "text_arr": [], "type": "text"}]}, "id": "recv81uz8HxaiC", "record_id": "recv81uz8HxaiC"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1767456000000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1767456000000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "asr模型支持websocket", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv832dyq51DQ", "record_id": "recv832dyq51DQ"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1767542400000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1767542400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "tts模型支持websocket", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv832g1R7cm5", "record_id": "recv832g1R7cm5"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "AutoGen 0.7.5", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv7YYrygVobu"], "table_id": "tblcK7RNfVTE0krF", "text": "Agent Skills", "text_arr": ["Agent Skills"], "type": "text"}]}, "id": "recv83Lx6HhzbI", "record_id": "recv83Lx6HhzbI"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "vLLM 0.13.3", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv7YYrygVobu"], "table_id": "tblcK7RNfVTE0krF", "text": "Agent Skills", "text_arr": ["Agent Skills"], "type": "text"}]}, "id": "recv83Lyml8Uxk", "record_id": "recv83Lyml8Uxk"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "AutoGen 0.7.5", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv3WyOUGhXKF"], "table_id": "tblcK7RNfVTE0krF", "text": "AI agent framework survey", "text_arr": ["AI agent framework survey"], "type": "text"}]}, "id": "recv83LCs6mlSe", "record_id": "recv83LCs6mlSe"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Completed", "Target Customers": ["IRD"], "Task": "Commit Message Guidelines (Angular Conventional Commit)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00cc_e521134f-3aad-42f2-94d3-9c39e11f2e7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "Ricky", "id": "ou_6759b23cefec74a54a102090aa129c7e", "name": "Ricky"}], "总结": null, "父记录": [{"record_ids": ["recv7YYrygVobu"], "table_id": "tblcK7RNfVTE0krF", "text": "Agent Skills", "text_arr": ["Agent Skills"], "type": "text"}]}, "id": "recv89gheGIImt", "record_id": "recv89gheGIImt"}, {"fields": {"Days Left": 0, "End Date": null, "Estimate Deadline": 1768492800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": "1. asr服务暴露 2. tts服务暴露 3. livekit server服务暴露", "Related Documents": null, "Start date": 1768406400000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "omnichat实现服务暴露", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv8qAbgmo6B5", "record_id": "recv8qAbgmo6B5"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1768752000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "硬件采购和基本功能测试连接", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I35tzI9Nm"], "table_id": "tblcK7RNfVTE0krF", "text": "嗑点啦", "text_arr": ["嗑点啦"], "type": "text"}]}, "id": "recv8I6vtzn5dG", "record_id": "recv8I6vtzn5dG"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": " 對接到OmniChat 2.0框架(用戶記憶,工具調用,多模態交互優化,調研對比OVA OS功能", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I35tzI9Nm"], "table_id": "tblcK7RNfVTE0krF", "text": "嗑点啦", "text_arr": ["嗑点啦"], "type": "text"}]}, "id": "recv8I6QMIbdP6", "record_id": "recv8I6QMIbdP6"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "嗑点啦代码功能开发", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I35tzI9Nm"], "table_id": "tblcK7RNfVTE0krF", "text": "嗑点啦", "text_arr": ["嗑点啦"], "type": "text"}]}, "id": "recv8I70f9c3s4", "record_id": "recv8I70f9c3s4"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "摄像头睁眼闭眼显示", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I70f9c3s4"], "table_id": "tblcK7RNfVTE0krF", "text": "嗑点啦代码功能开发", "text_arr": ["嗑点啦代码功能开发"], "type": "text"}]}, "id": "recv8I7tWHcYXn", "record_id": "recv8I7tWHcYXn"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": "Wishlist", "Target Customers": ["IRD"], "Task": "身体姿态活动识别", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I70f9c3s4"], "table_id": "tblcK7RNfVTE0krF", "text": "嗑点啦代码功能开发", "text_arr": ["嗑点啦代码功能开发"], "type": "text"}]}, "id": "recv8I7LIdKaYI", "record_id": "recv8I7LIdKaYI"}, {"fields": {"Days Left": 0, "End Date": 1772640000000, "Estimate Deadline": 1772640000000, "Images": null, "Manday count": "1", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1772380800000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "對接飛書,匯總所有Dashboard的信息到同一工具/系統", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I3sg7YHaA"], "table_id": "tblcK7RNfVTE0krF", "text": "任务安排时间管理关联工具", "text_arr": ["任务安排时间管理关联工具"], "type": "text"}]}, "id": "recv8I94HXjfXW", "record_id": "recv8I94HXjfXW"}, {"fields": {"Days Left": -6, "End Date": 1773676800000, "Estimate Deadline": 1773676800000, "Images": null, "Manday count": "0.5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1773590400000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "系統能跟蹤超時task并且提醒跟進(長時間沒進度的也提醒)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I3sg7YHaA"], "table_id": "tblcK7RNfVTE0krF", "text": "任务安排时间管理关联工具", "text_arr": ["任务安排时间管理关联工具"], "type": "text"}]}, "id": "recv8I9dDtWg3E", "record_id": "recv8I9dDtWg3E"}, {"fields": {"Days Left": -3, "End Date": 1773936000000, "Estimate Deadline": 1773936000000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1773676800000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "能產生匯總報表,減少每月/每季度給管理層的“手工”活", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I3sg7YHaA"], "table_id": "tblcK7RNfVTE0krF", "text": "任务安排时间管理关联工具", "text_arr": ["任务安排时间管理关联工具"], "type": "text"}]}, "id": "recv8I9jCwfu5B", "record_id": "recv8I9jCwfu5B"}, {"fields": {"Days Left": -3, "End Date": 1773936000000, "Estimate Deadline": 1773936000000, "Images": null, "Manday count": "2", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1773676800000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "能產生一些insights(產生Task的相關簡介與總結)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": null, "父记录": [{"record_ids": ["recv8I3sg7YHaA"], "table_id": "tblcK7RNfVTE0krF", "text": "任务安排时间管理关联工具", "text_arr": ["任务安排时间管理关联工具"], "type": "text"}]}, "id": "recv8I9jOCiawv", "record_id": "recv8I9jOCiawv"}, {"fields": {"Days Left": -62, "End Date": null, "Estimate Deadline": 1768838400000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": null, "Related Documents": null, "Start date": 1768752000000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "omnichat 文档编写", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv8NP6WblA6I", "record_id": "recv8NP6WblA6I"}, {"fields": {"Days Left": -61, "End Date": null, "Estimate Deadline": 1768924800000, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Important", "Progress notes": "1. web前端编写 2. cpp客户端编写", "Related Documents": null, "Start date": 1768924800000, "Status": "Ongoing ", "Target Customers": ["IRD"], "Task": "omnichat client(含cpp)", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v3_00ku_3b39893d-514a-42b8-ad84-736eef337d7g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "刘忠杰", "id": "ou_bf17af7947103d4687a0bd17578c0705", "name": "刘忠杰"}], "总结": null, "父记录": [{"record_ids": ["recv46eEPKgiBY"], "table_id": "tblcK7RNfVTE0krF", "text": "VLM Pipecat及Livekit接口框架研发", "text_arr": ["VLM Pipecat及Livekit接口框架研发"], "type": "text"}]}, "id": "recv8NP7avdde1", "record_id": "recv8NP7avdde1"}, {"fields": {"Days Left": 0, "End Date": 1769184000000, "Estimate Deadline": 1769356800000, "Images": null, "Manday count": "2.5", "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": 1768924800000, "Status": "Completed", "Target Customers": ["IRD"], "Task": "tts-blackbox重构改造", "Task Description": null, "Task leader": [{"avatar_url": "https://s3-imfile.feishucdn.com/static-resource/v1/v2_ef929e52-4fc4-424a-9de6-c6740755cf9g~?image_size=72x72&cut_type=default-face&quality=&format=jpeg&sticker_format=.webp", "email": "", "en_name": "陈文晓", "id": "ou_67a9397a62fcb33e2769c211deced6fe", "name": "陈文晓"}], "总结": "tts-blackbox重构改造项目状态为进行中(Ongoing),负责人陈文晓,计划开始时间2026/01/21,计划结束时间2026/01/26,实际开始时间2026/01/24,工时2.5,优先级为Normal,所属模块为TTS ASR系统设计开发。", "父记录": [{"record_ids": ["recv14HesizlNf"], "table_id": "tblcK7RNfVTE0krF", "text": "TTS ASR系统设计开发", "text_arr": ["TTS ASR系统设计开发"], "type": "text"}]}, "id": "recv8ZPxz0DLvl", "record_id": "recv8ZPxz0DLvl"}]}, {"name": "ttGroup", "records": [{"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": "Normal", "Progress notes": null, "Related Documents": null, "Start date": null, "Status": null, "Task": "身体姿态活动识别", "Task Description": null, "Task leader": null, "总结": null, "父记录": [{"record_ids": null, "table_id": "tblAM4bz9CeuZaGn", "text": null, "text_arr": [], "type": "text"}]}, "id": "recve6NIu06MIe", "record_id": "recve6NIu06MIe"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": null, "Status": null, "Task": null, "Task Description": null, "Task leader": null, "总结": null, "父记录": [{"record_ids": null, "table_id": "tblAM4bz9CeuZaGn", "text": null, "text_arr": [], "type": "text"}]}, "id": "recvebjF85kyWq", "record_id": "recvebjF85kyWq"}, {"fields": {"Days Left": -46104, "End Date": null, "Estimate Deadline": null, "Images": null, "Manday count": null, "Overdue": [{"text": "✅ Normal", "type": "text"}], "Priority": null, "Progress notes": null, "Related Documents": null, "Start date": null, "Status": null, "Task": "红红火火", "Task Description": null, "Task leader": null, "总结": null, "父记录": [{"record_ids": ["recve6NIu06MIe"], "table_id": "tblAM4bz9CeuZaGn", "text": "身体姿态活动识别", "text_arr": ["身体姿态活动识别"], "type": "text"}]}, "id": "recvebtPeYxAOM", "record_id": "recvebtPeYxAOM"}]}]; // Array of {name, records}
|
||
let rawRecords = [];
|
||
let records = [];
|
||
|
||
function extractText(val) {
|
||
if (Array.isArray(val) && val.length > 0) return val[0].text || '';
|
||
return val ? String(val) : '';
|
||
}
|
||
|
||
function formatDate(ts) {
|
||
if (!ts) return '';
|
||
const d = new Date(Number(ts));
|
||
const mo = String(d.getMonth()+1).padStart(2,'0');
|
||
const da = String(d.getDate()).padStart(2,'0');
|
||
return `${mo}-${da}`;
|
||
}
|
||
|
||
function parseRecords() {
|
||
records = rawRecords.map(r => {
|
||
const fields = r.fields || {};
|
||
const taskNameRaw = fields['Task'] || fields['Task Description'];
|
||
const taskName = extractText(taskNameRaw) || 'Untitled Task';
|
||
const status = extractText(fields['Status']).trim();
|
||
const priority = extractText(fields['Priority']).trim();
|
||
const overdue = extractText(fields['Overdue']).trim();
|
||
const manday = fields['Manday count'] || '';
|
||
const progressNotes = extractText(fields['Progress notes']).trim();
|
||
|
||
let tcRaw = fields['Target Customers'];
|
||
let targetCustomers = '';
|
||
if (Array.isArray(tcRaw)) {
|
||
targetCustomers = tcRaw.map(x => typeof x === 'object' ? (x.text || '') : String(x)).join(', ').trim();
|
||
} else if (tcRaw) {
|
||
targetCustomers = String(tcRaw).trim();
|
||
}
|
||
if (targetCustomers) {
|
||
console.log("Parsed Target Customers for [" + taskName + "]:", targetCustomers);
|
||
}
|
||
|
||
let parentRaw = fields['父记录'];
|
||
let parentId = null;
|
||
let parentName = null;
|
||
|
||
if (Array.isArray(parentRaw) && parentRaw.length > 0) {
|
||
if (parentRaw[0].record_ids && parentRaw[0].record_ids.length > 0) {
|
||
parentId = parentRaw[0].record_ids[0];
|
||
} else {
|
||
parentName = parentRaw[0].text;
|
||
}
|
||
} else if (typeof parentRaw === 'string') {
|
||
parentName = parentRaw.trim();
|
||
}
|
||
|
||
const startDateRaw = fields['Start date'];
|
||
const endDateRaw = fields['End Date'];
|
||
const startDate = startDateRaw ? Number(startDateRaw) : Infinity;
|
||
const endDate = endDateRaw ? Number(endDateRaw) : Infinity;
|
||
|
||
const leadersRaw = Array.isArray(fields['Task leader']) ? fields['Task leader'] : [];
|
||
const leaders = leadersRaw.filter(x => x && typeof x === 'object').map(x => ({name: x.name, avatar: x.avatar_url}));
|
||
|
||
return {
|
||
id: r.record_id,
|
||
taskName,
|
||
status,
|
||
priority,
|
||
overdue,
|
||
manday,
|
||
progressNotes,
|
||
targetCustomers,
|
||
parentId,
|
||
parentName,
|
||
startDate,
|
||
endDate,
|
||
startDateStr: formatDate(startDateRaw),
|
||
endDateStr: formatDate(endDateRaw),
|
||
leaders
|
||
};
|
||
});
|
||
|
||
// Build hierarchy mapping
|
||
const nameMap = {};
|
||
records.forEach(r => nameMap[r.taskName] = r.id);
|
||
records.forEach(r => {
|
||
if (!r.parentId && r.parentName && nameMap[r.parentName]) {
|
||
r.parentId = nameMap[r.parentName];
|
||
}
|
||
if (r.parentId === r.id) r.parentId = null;
|
||
});
|
||
|
||
// Populate dropdowns
|
||
const statuses = new Set();
|
||
const leaderNames = new Set();
|
||
records.forEach(r => {
|
||
if(r.status) statuses.add(r.status);
|
||
r.leaders.forEach(l => leaderNames.add(l.name));
|
||
});
|
||
|
||
const statusSelect = document.getElementById('statusFilter');
|
||
statusSelect.innerHTML = '<option value="">All Statuses</option>';
|
||
Array.from(statuses).sort().forEach(s => {
|
||
const opt = document.createElement('option');
|
||
opt.value = opt.textContent = s;
|
||
statusSelect.appendChild(opt);
|
||
});
|
||
|
||
const leaderSelect = document.getElementById('leaderFilter');
|
||
leaderSelect.innerHTML = '<option value="">All Leaders</option>';
|
||
Array.from(leaderNames).sort().forEach(l => {
|
||
const opt = document.createElement('option');
|
||
opt.value = opt.textContent = l;
|
||
leaderSelect.appendChild(opt);
|
||
});
|
||
}
|
||
|
||
function switchTab(index) {
|
||
if (!tabData[index]) return;
|
||
rawRecords = tabData[index].records;
|
||
|
||
document.querySelectorAll('.tab').forEach((t, i) => {
|
||
if (i === index) t.classList.add('active');
|
||
else t.classList.remove('active');
|
||
});
|
||
|
||
// Reset filters visual
|
||
document.getElementById('searchInput').value = '';
|
||
document.getElementById('sortOrder').value = 'default';
|
||
|
||
parseRecords();
|
||
render();
|
||
}
|
||
|
||
function initTabs() {
|
||
const container = document.getElementById('tabContainer');
|
||
tabData.forEach((tab, index) => {
|
||
const btn = document.createElement('button');
|
||
btn.className = 'tab';
|
||
btn.textContent = tab.name;
|
||
btn.onclick = () => switchTab(index);
|
||
container.appendChild(btn);
|
||
});
|
||
|
||
const summaryBtn = document.createElement('button');
|
||
summaryBtn.className = 'tab';
|
||
summaryBtn.style.marginLeft = 'auto'; // Push to the right
|
||
summaryBtn.style.color = '#8b5cf6';
|
||
summaryBtn.style.fontWeight = 'bold';
|
||
summaryBtn.innerHTML = '🌟 全局大总结';
|
||
summaryBtn.onclick = window.requestGlobalSummary;
|
||
container.appendChild(summaryBtn);
|
||
|
||
if (tabData.length > 0) {
|
||
switchTab(0);
|
||
}
|
||
}
|
||
|
||
// UI State
|
||
let isExpandAll = false;
|
||
|
||
document.getElementById('searchInput').addEventListener('input', render);
|
||
document.getElementById('statusFilter').addEventListener('change', render);
|
||
document.getElementById('leaderFilter').addEventListener('change', render);
|
||
document.getElementById('sortOrder').addEventListener('change', render);
|
||
document.getElementById('dateFrom').addEventListener('change', render);
|
||
document.getElementById('dateTo').addEventListener('change', render);
|
||
document.getElementById('toggleExpand').addEventListener('click', () => {
|
||
isExpandAll = !isExpandAll;
|
||
render();
|
||
});
|
||
|
||
function sortNodes(nodes, sortKey) {
|
||
if (sortKey === 'default') return nodes;
|
||
nodes.sort((a, b) => {
|
||
if (sortKey === 'startDate') return a.startDate - b.startDate;
|
||
if (sortKey === 'priority') {
|
||
const getP = p => p.includes('High') || p.includes('Important') ? 3 : p.includes('Normal') ? 2 : 1;
|
||
return getP(b.priority) - getP(a.priority);
|
||
}
|
||
return 0;
|
||
});
|
||
nodes.forEach(n => sortNodes(n.children, sortKey));
|
||
return nodes;
|
||
}
|
||
|
||
function filterNodes(nodes, search, statusFilter, leaderFilter, dateFrom, dateTo) {
|
||
let result = [];
|
||
nodes.forEach(n => {
|
||
let matchSearch = n.taskName.toLowerCase().includes(search.toLowerCase()) ||
|
||
(n.targetCustomers && n.targetCustomers.toLowerCase().includes(search.toLowerCase()));
|
||
let matchStatus = statusFilter === '' || n.status === statusFilter;
|
||
let matchLeader = leaderFilter === '' || n.leaders.some(l => l.name === leaderFilter);
|
||
|
||
let matchDate = true;
|
||
if (dateFrom !== -Infinity || dateTo !== Infinity) {
|
||
let s = n.startDate !== Infinity ? n.startDate : (n.endDate !== Infinity ? n.endDate : Infinity);
|
||
let e = n.endDate !== Infinity ? n.endDate : (n.startDate !== Infinity ? n.startDate : Infinity);
|
||
|
||
if (s !== Infinity && e !== Infinity) {
|
||
matchDate = (s <= dateTo) && (e >= dateFrom);
|
||
} else {
|
||
matchDate = false;
|
||
}
|
||
}
|
||
|
||
let filteredChildren = filterNodes(n.children, search, statusFilter, leaderFilter, dateFrom, dateTo);
|
||
|
||
let selfMatch = matchSearch && matchStatus && matchLeader && matchDate;
|
||
|
||
if (selfMatch || filteredChildren.length > 0) {
|
||
let cloned = {...n, children: filteredChildren};
|
||
cloned.isMatch = selfMatch;
|
||
result.push(cloned);
|
||
}
|
||
});
|
||
return result;
|
||
}
|
||
|
||
function genTags(n) {
|
||
let html = '<div class="tags">';
|
||
if (n.status) {
|
||
let bg = '#f1f5f9', fg = '#475569';
|
||
if (n.status.includes('Ongoing') || n.status.includes('进行中')) { bg='#dbeafe'; fg='#1e40af'; }
|
||
else if (n.status.includes('Completed') || n.status.includes('完成')) { bg='#d1fae5'; fg='#065f46'; }
|
||
html += `<span class="tag" style="background:${bg};color:${fg}">${n.status}</span>`;
|
||
}
|
||
if (n.priority) {
|
||
if (n.priority.includes('High') || n.priority.includes('Important')) {
|
||
html += `<span class="tag" style="background:#ffedd5;color:#c2410c">${n.priority}</span>`;
|
||
} else if (!n.priority.includes('Normal')) {
|
||
html += `<span class="tag" style="background:#f1f5f9;color:#475569">${n.priority}</span>`;
|
||
}
|
||
}
|
||
if (n.overdue && !n.overdue.includes('✅')) {
|
||
html += `<span class="tag" style="background:#fee2e2;color:#991b1b">${n.overdue}</span>`;
|
||
}
|
||
if (n.targetCustomers) {
|
||
html += `<span class="tag" style="background:#fce7f3;color:#9d174d">🎯 ${n.targetCustomers}</span>`;
|
||
}
|
||
html += '</div>';
|
||
return html;
|
||
}
|
||
|
||
function genMeta(n) {
|
||
let html = '<div class="task-meta">';
|
||
if (n.leaders.length > 0) {
|
||
html += '<div class="meta-item">';
|
||
n.leaders.forEach(l => {
|
||
if (l.avatar) html += `<img src="${l.avatar}" class="avatar" title="${l.name}">`;
|
||
else html += `<span>${l.name}</span>`;
|
||
});
|
||
html += '</div>';
|
||
}
|
||
if (n.startDateStr || n.endDateStr) {
|
||
html += `<div class="meta-item">🗓️ ${n.startDateStr} ~ ${n.endDateStr}</div>`;
|
||
}
|
||
if (n.manday) {
|
||
html += `<div class="meta-item">⏱️ ${n.manday}d</div>`;
|
||
}
|
||
html += '</div>';
|
||
return html;
|
||
}
|
||
|
||
window.toggleNotes = function(event, id) {
|
||
event.stopPropagation();
|
||
event.preventDefault();
|
||
const el = document.getElementById('notes-' + id);
|
||
if (!el) return;
|
||
if (el.style.display === 'none') {
|
||
el.style.display = 'block';
|
||
} else {
|
||
el.style.display = 'none';
|
||
}
|
||
};
|
||
|
||
function renderHTML(nodes, isRoot) {
|
||
if (nodes.length === 0) return '';
|
||
let html = isRoot ? '<ul class="tree">' : '<ul>';
|
||
nodes.forEach(n => {
|
||
let dimClass = n.isMatch === false ? 'dimmed' : '';
|
||
let tags = genTags(n);
|
||
let meta = genMeta(n);
|
||
|
||
// Hide details by default, show toggle button if notes exist
|
||
let toggleNotesBtn = '';
|
||
let notesHtml = '';
|
||
if (n.progressNotes) {
|
||
toggleNotesBtn = `<span title="Toggle Progress Notes" style="cursor:pointer; font-size:14px; margin-right:6px;" onclick="window.toggleNotes(event, '${n.id}')">📝</span>`;
|
||
notesHtml = `<div id="notes-${n.id}" style="display:none; font-size:13px; color:#64748b; margin-top:8px; padding:8px; background:#f8fafc; border-radius:6px; border:1px dashed #cbd5e1; font-family: monospace; white-space: pre-wrap;">${n.progressNotes}</div>`;
|
||
}
|
||
|
||
html += `<li class="${dimClass}">`;
|
||
if (n.children.length > 0) {
|
||
let openAttr = isExpandAll ? 'open' : '';
|
||
html += `<details ${openAttr}>
|
||
<summary>
|
||
<div class="node-content" style="flex-wrap: wrap;">
|
||
<div style="width:100%; display:flex; align-items:center; justify-content:space-between;">
|
||
<div class="task-left">
|
||
<span class="toggle-icon">▶</span>
|
||
${toggleNotesBtn}
|
||
<span class="task-title">${n.taskName}</span>
|
||
${tags}
|
||
</div>
|
||
${meta}
|
||
</div>
|
||
${notesHtml ? '<div style="width:100%; padding-left:24px;">' + notesHtml + '</div>' : ''}
|
||
</div>
|
||
</summary>
|
||
${renderHTML(n.children, false)}
|
||
</details>`;
|
||
} else {
|
||
let unnamedClass = n.taskName === 'Untitled Task' ? 'unnamed-task' : '';
|
||
html += `<div class="node-content empty-leaf" style="flex-wrap: wrap;">
|
||
<div style="width:100%; display:flex; align-items:center; justify-content:space-between;">
|
||
<div class="task-left">
|
||
${toggleNotesBtn}
|
||
<span class="task-title ${unnamedClass}">${n.taskName}</span>
|
||
${tags}
|
||
</div>
|
||
${meta}
|
||
</div>
|
||
${notesHtml ? '<div style="width:100%; padding-left:8px;">' + notesHtml + '</div>' : ''}
|
||
</div>`;
|
||
}
|
||
html += '</li>';
|
||
});
|
||
html += '</ul>';
|
||
return html;
|
||
}
|
||
|
||
function countNodes(nodes) {
|
||
return nodes.reduce((sum, n) => sum + 1 + countNodes(n.children), 0);
|
||
}
|
||
|
||
function collectMatchedNodes(nodes) {
|
||
let acc = [];
|
||
nodes.forEach(n => {
|
||
if (n.isMatch) acc.push(n);
|
||
acc = acc.concat(collectMatchedNodes(n.children));
|
||
});
|
||
return acc;
|
||
}
|
||
|
||
function generateSummary(nodes, status, leader) {
|
||
let matched = collectMatchedNodes(nodes);
|
||
if (matched.length === 0) return '';
|
||
|
||
let totalMandays = 0;
|
||
let completed = 0;
|
||
let ongoing = 0;
|
||
let taskNames = [];
|
||
|
||
matched.forEach(r => {
|
||
if (r.manday) {
|
||
let num = parseFloat(r.manday);
|
||
if (!isNaN(num)) totalMandays += num;
|
||
}
|
||
if (r.status && (r.status.includes('Completed') || r.status.includes('完成'))) completed++;
|
||
else if (r.status && (r.status.includes('Ongoing') || r.status.includes('进行中'))) ongoing++;
|
||
|
||
if (r.taskName && r.taskName !== 'Untitled Task') {
|
||
taskNames.push(r.taskName);
|
||
}
|
||
});
|
||
|
||
let html = '<div style="margin-bottom:16px; padding:12px 16px; background:#f0fdf4; border: 1px solid #bbf7d0; border-left:4px solid #22c55e; border-radius:6px; font-size:14px; color:#166534; box-shadow: 0 1px 2px rgba(0,0,0,0.05);">';
|
||
html += '<div style="font-weight:600; margin-bottom:6px; display:flex; align-items:center; gap:6px;"><span>💡</span>智能总结 (Smart Summary)</div>';
|
||
|
||
let parts = [];
|
||
if (!status && !leader) {
|
||
let title = document.getElementById('searchInput') && document.getElementById('searchInput').value ? '搜索结果' : '当前全局';
|
||
parts.push(`${title}共有 <strong>${matched.length}</strong> 项任务 (已完成 ${completed} 项,进行中 ${ongoing} 项)。`);
|
||
if (totalMandays > 0) parts.push(`预计总人力:<strong>${Math.round(totalMandays*10)/10}</strong> 人日。`);
|
||
parts.push(`核心事项概览:`);
|
||
} else if (leader && !status) {
|
||
parts.push(`<strong>${leader}</strong> 共有 <strong>${matched.length}</strong> 项任务 (已完成 ${completed} 项,进行中 ${ongoing} 项)。`);
|
||
if (totalMandays > 0) parts.push(`预计总人力:<strong>${Math.round(totalMandays*10)/10}</strong> 人日。`);
|
||
parts.push(`Ta 负责的主要事项有:`);
|
||
} else if (status && !leader) {
|
||
let isDone = status.includes('Completed') || status.includes('完成');
|
||
if (isDone) {
|
||
parts.push(`✅ 已经干完了 <strong>${matched.length}</strong> 项任务!`);
|
||
if (totalMandays > 0) parts.push(`共计消耗人力:<strong>${Math.round(totalMandays*10)/10}</strong> 人日。`);
|
||
parts.push(`具体完成了这些东西:`);
|
||
} else {
|
||
parts.push(`有 <strong>${matched.length}</strong> 项任务处于 "<strong>${status}</strong>" 状态。`);
|
||
if (totalMandays > 0) parts.push(`关联的人力评估:<strong>${Math.round(totalMandays*10)/10}</strong> 人日。`);
|
||
parts.push(`具体包含:`);
|
||
}
|
||
} else if (leader && status) {
|
||
parts.push(`<strong>${leader}</strong> 有 <strong>${matched.length}</strong> 项状态为 "<strong>${status}</strong>" 的任务。`);
|
||
if (totalMandays > 0) parts.push(`相关人力评估:<strong>${Math.round(totalMandays*10)/10}</strong> 人日。`);
|
||
parts.push(`相关任务:`);
|
||
}
|
||
|
||
if (taskNames.length > 0) {
|
||
let displayNames = taskNames.slice(0, 10).map(n => `「${n}」`).join('、');
|
||
if (taskNames.length > 10) displayNames += ` 等等 (共${taskNames.length}个)`;
|
||
parts.push(`${displayNames}。`);
|
||
}
|
||
|
||
html += '<div style="line-height: 1.6;">' + parts.join(' ') + '</div>';
|
||
|
||
window._lastMatchedNodes = matched;
|
||
|
||
html += `<div style="margin-top:12px;display:flex;gap:8px;align-items:center;">
|
||
<button onclick="window.requestAISummary()" style="background:#22c55e;color:white;border:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:background 0.2s;" onmouseover="this.style.background='#16a34a'" onmouseout="this.style.background='#22c55e'">🤖 请求 AI 深度总结</button>
|
||
<button onclick="window.configAI()" style="background:transparent;border:1px solid #bbf7d0;color:#166534;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px;transition:background 0.2s;" onmouseover="this.style.background='#dcfce7'" onmouseout="this.style.background='transparent'">⚙️ 配置 API</button>
|
||
</div>`;
|
||
|
||
html += '</div>';
|
||
return html;
|
||
}
|
||
|
||
window.configAI = function() {
|
||
let currentKey = localStorage.getItem('ai_api_key') || 'sk-orez64WkG1NkfksB5j_hGA';
|
||
let currentUrl = localStorage.getItem('ai_base_url') || 'https://oai.bwgdi.com/v1';
|
||
let currentModel = localStorage.getItem('ai_model') || 'MiniMaxAI';
|
||
|
||
let key = prompt('请输入您的 API Key (无需则留空或取消):', currentKey);
|
||
if (key === null) return;
|
||
let url = prompt('请输入 API Base URL (例如 https://api.openai.com/v1 或兼容地址):', currentUrl);
|
||
if (url === null) return;
|
||
let model = prompt('请输入模型名称 (例如 gpt-4o, deepseek-chat):', currentModel);
|
||
if (model === null) return;
|
||
|
||
localStorage.setItem('ai_api_key', key);
|
||
localStorage.setItem('ai_base_url', url);
|
||
localStorage.setItem('ai_model', model);
|
||
alert('AI 配置已成功保存在浏览器本地!');
|
||
};
|
||
|
||
async function fetchAndStreamAI(promptText, box) {
|
||
let key = localStorage.getItem('ai_api_key') || 'sk-orez64WkG1NkfksB5j_hGA';
|
||
let url = localStorage.getItem('ai_base_url') || 'https://oai.bwgdi.com/v1';
|
||
let model = localStorage.getItem('ai_model') || 'MiniMaxAI';
|
||
|
||
if (!key && url.includes('openai.com')) {
|
||
alert('系统检测到您未配置 API Key,请先进行配置!');
|
||
window.configAI();
|
||
key = localStorage.getItem('ai_api_key');
|
||
if (!key) return;
|
||
}
|
||
|
||
box.style.display = 'block';
|
||
box.textContent = '🚀 正在请求 AI,这可能需要一点时间,请稍等...\n如果长时间不响应,请检查浏览器控制台报错或网络代理。';
|
||
|
||
try {
|
||
let fetchUrl = url;
|
||
if (fetchUrl.endsWith('/')) fetchUrl = fetchUrl.slice(0, -1);
|
||
if (!fetchUrl.endsWith('/chat/completions')) fetchUrl += '/chat/completions';
|
||
|
||
const response = await fetch(fetchUrl, {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
'Authorization': 'Bearer ' + key
|
||
},
|
||
body: JSON.stringify({
|
||
model: model,
|
||
messages: [
|
||
{ role: 'system', content: '你是一位资深项目负责人,擅长做简洁、高价值的工作汇报,突出结果与业务价值,而非技术细节。' },
|
||
{ role: 'user', content: promptText }
|
||
],
|
||
stream: true,
|
||
temperature: 0.7
|
||
})
|
||
});
|
||
|
||
if (!response.ok) {
|
||
const errBox = await response.text();
|
||
box.textContent = `网络请求失败 (状态码 ${response.status}): \n${errBox}\n\n请确认提供的 API Base URL(${url}) 和 API Key 是否正确。`;
|
||
return;
|
||
}
|
||
|
||
const reader = response.body.getReader();
|
||
const decoder = new TextDecoder("utf-8");
|
||
let content = '';
|
||
box.textContent = '思考中...';
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
const chunk = decoder.decode(value, { stream: true });
|
||
const lines = chunk.split('\n');
|
||
for (const line of lines) {
|
||
if (line.trim().startsWith('data:') && line.trim() !== 'data: [DONE]') {
|
||
try {
|
||
let jsonStr = line.replace(/^data:\s*/, '');
|
||
const parsed = JSON.parse(jsonStr);
|
||
if (parsed.choices && parsed.choices[0].delta && parsed.choices[0].delta.content) {
|
||
content += parsed.choices[0].delta.content;
|
||
|
||
let displayContent = content.replace(/<think>[\s\S]*?(?:<\/think>\n*|$)/gi, '');
|
||
if (content.toLowerCase().includes('<think>') && !content.toLowerCase().includes('</think>')) {
|
||
displayContent = "🤔 正在深度思考中...\n\n" + displayContent;
|
||
}
|
||
|
||
box.textContent = displayContent;
|
||
box.scrollTop = box.scrollHeight;
|
||
}
|
||
} catch(e) {}
|
||
}
|
||
}
|
||
}
|
||
} catch(e) {
|
||
box.textContent = `发生异常: ${e.message}\n请检查网络连通性或 API 跨域(CORS)限制问题。`;
|
||
}
|
||
}
|
||
|
||
window.requestAISummary = function() {
|
||
const matched = window._lastMatchedNodes || [];
|
||
if (matched.length === 0) {
|
||
alert("当前视图没有任何任务记录,无需总结。");
|
||
return;
|
||
}
|
||
|
||
const tasksForAI = matched.map(m => ({
|
||
TaskName: m.taskName,
|
||
Status: m.status,
|
||
Priority: m.priority,
|
||
Leaders: m.leaders.map(l => l.name).join(','),
|
||
ProgressNotes: m.progressNotes || "无",
|
||
Manday: m.manday || "0",
|
||
TargetCustomers: m.targetCustomers || "无"
|
||
}));
|
||
|
||
const promptText = `请将以下多个任务整理汇报摘要:
|
||
要求:
|
||
1. 每个任务用3-4行总结(须明确提及该任务相关的 TargetCustomers 目标客户信息)
|
||
2. 最后增加【整体情况总结】:
|
||
- 完成情况(完成/进行中)
|
||
- 当前重点方向(包含核心目标客户的总体进展)
|
||
|
||
输出结构:
|
||
(多个任务总结)
|
||
|
||
【整体情况总结】
|
||
- 数据如下:
|
||
${JSON.stringify(tasksForAI, null, 2)}`;
|
||
|
||
const box = document.getElementById('aiSummaryResult');
|
||
fetchAndStreamAI(promptText, box);
|
||
};
|
||
|
||
window.requestGlobalSummary = function() {
|
||
let allTasks = [];
|
||
tabData.forEach(tab => {
|
||
tab.records.forEach(r => {
|
||
const fields = r.fields || {};
|
||
const taskNameRaw = fields['Task'] || fields['Task Description'];
|
||
let taskName = '';
|
||
if (Array.isArray(taskNameRaw) && taskNameRaw.length > 0) taskName = taskNameRaw[0].text || '';
|
||
else taskName = taskNameRaw ? String(taskNameRaw) : 'Untitled Task';
|
||
|
||
let statusRaw = fields['Status'];
|
||
let status = '';
|
||
if (Array.isArray(statusRaw) && statusRaw.length > 0) status = statusRaw[0].text || '';
|
||
else status = statusRaw ? String(statusRaw) : '';
|
||
|
||
let targetCustomersRaw = fields['Target Customers'];
|
||
let targetCustomers = '';
|
||
if (Array.isArray(targetCustomersRaw)) {
|
||
targetCustomers = targetCustomersRaw.map(x => typeof x === 'object' ? (x.text || '') : String(x)).join(', ').trim();
|
||
} else if (targetCustomersRaw) {
|
||
targetCustomers = String(targetCustomersRaw).trim();
|
||
}
|
||
|
||
allTasks.push({
|
||
TabName: tab.name,
|
||
TaskName: taskName,
|
||
Status: status.trim(),
|
||
TargetCustomers: targetCustomers.trim()
|
||
});
|
||
});
|
||
});
|
||
|
||
if (allTasks.length === 0) {
|
||
alert("所有视图均没有任务记录,无需总结。");
|
||
return;
|
||
}
|
||
|
||
const promptText = `请将以下来自多个部门/维度的表格任务进行全局大总结:
|
||
要求:
|
||
1. 按照不同的 Tab (即数据来源) 独立提取核心进展与问题。
|
||
2. 特别留意并提炼出 TargetCustomers (目标客户) 的主要推行情况。
|
||
3. 最后给出一个【全局统筹结论】,指出哪些方向正常,哪些可能存在延期或需要重点关注。
|
||
4. 尽量言简意赅,不要只是把每一条数据罗列一遍,要有跨表分析和高层次的提炼。
|
||
|
||
- 数据如下:
|
||
${JSON.stringify(allTasks, null, 2)}`;
|
||
|
||
const box = document.getElementById('globalAiSummaryResult');
|
||
fetchAndStreamAI(promptText, box);
|
||
};
|
||
|
||
function render() {
|
||
const search = document.getElementById('searchInput').value;
|
||
const status = document.getElementById('statusFilter').value;
|
||
const leader = document.getElementById('leaderFilter').value;
|
||
const sortKey = document.getElementById('sortOrder').value;
|
||
|
||
let dfRaw = document.getElementById('dateFrom').value;
|
||
let dtRaw = document.getElementById('dateTo').value;
|
||
const dateFrom = dfRaw ? new Date(dfRaw).getTime() : -Infinity;
|
||
const dateTo = dtRaw ? new Date(dtRaw).getTime() + 86400000 - 1 : Infinity;
|
||
|
||
let nodeMap = {};
|
||
records.forEach(r => { nodeMap[r.id] = {...r, children: []}; });
|
||
|
||
let roots = [];
|
||
records.forEach(r => {
|
||
let n = nodeMap[r.id];
|
||
if (r.parentId && nodeMap[r.parentId]) nodeMap[r.parentId].children.push(n);
|
||
else roots.push(n);
|
||
});
|
||
|
||
// Sort logic inside roots recursively helps visual grouping
|
||
roots.sort((a,b) => b.children.length - a.children.length); // roots with children on top by default
|
||
|
||
let filtered = filterNodes(roots, search, status, leader, dateFrom, dateTo);
|
||
let sorted = sortNodes(filtered, sortKey);
|
||
|
||
let renderedHtml = renderHTML(sorted, true);
|
||
document.getElementById('tree-container').innerHTML = renderedHtml || '<p style="text-align:center;color:#64748b;margin-top:40px;">No matching records found.</p>';
|
||
|
||
let visibleCount = countNodes(sorted);
|
||
let isFilterActive = search !== '' || status !== '' || leader !== '';
|
||
let msg = `Showing ${visibleCount} / ${records.length} tasks`;
|
||
if (isFilterActive) {
|
||
msg += ' (Filtered)';
|
||
}
|
||
document.getElementById('statsDisplay').textContent = msg;
|
||
document.getElementById('summaryDisplay').innerHTML = generateSummary(filtered, status, leader);
|
||
|
||
// Clear AI Summary on any filter change so it doesn't show stale info
|
||
let aiBox = document.getElementById('aiSummaryResult');
|
||
if (aiBox) {
|
||
aiBox.style.display = 'none';
|
||
aiBox.textContent = '';
|
||
}
|
||
}
|
||
|
||
// Initialize tabs and first render
|
||
initTabs();
|
||
|
||
</script>
|
||
</body>
|
||
</html>
|