今日已更新 36 条资讯 | 累计 32366 条内容
关于我们

今日精选

HOT

最新资讯

共 32366 篇
第 1203/1619 页
AI 资讯 Dev.to

Meet Lunarr: a self-hosted media server for local and SFTP libraries

I have been building Lunarr , a self-hosted web media server for people who want to scan, organize, and watch their own movie and TV libraries in the browser. It is still early, but the core idea is simple: Add local or SFTP media libraries, scan them, match metadata, and play them through a clean web UI. Lunarr is not trying to replace Plex or Jellyfin overnight. Those projects are mature and cover a huge surface area. Lunarr is currently focused on being small, direct, and practical for self-hosted setups where media may live on the same machine or on remote SFTP storage. What Lunarr does today Lunarr currently supports: Local movie and TV libraries SFTP movie and TV libraries TMDb metadata matching Movie, show, season, and episode organization Browser playback Direct streaming when the browser can play the file Temporary HLS remux/transcode when needed Seekable request-driven HLS playback Sidecar .vtt subtitle detection Admin/user accounts Library sharing controls Manual scans, scheduled scans, and local file watching Docker deployment The SFTP support is one of the important parts for me. A lot of self-hosted setups do not keep media on the same machine as the web app. Lunarr can scan remote folders and, when possible, play seekable remote media without first copying the whole file locally. Playback model Lunarr tries direct playback first when the browser can handle the file. When direct playback is not suitable, Lunarr uses temporary HLS playback. Instead of transcoding an entire movie up front, it generates segments around what the player is actually requesting. For example, if you jump from 55 minutes to 13 minutes and then to 80 minutes, Lunarr does not transcode everything between those points. It repositions FFmpeg, generates the requested segment, and prepares a small lookahead window so playback can continue. That keeps CPU and disk usage more proportional to what the viewer is actually watching. Quick start with Docker docker run -d \ --name lunarr \ -

Sayem Chowdhury 2026-06-13 14:58 12 原文
AI 资讯 Dev.to

OS Architecture, Kernel, Shell & File System

🐧 Linux for DevOps — Session 2: Understanding the Kernel, Shell, OS Architecture & File System 📓 Learning in public — These are my personal notes from my Linux for DevOps & Cloud journey. I'm sharing them in a way that's easy to revisit later and hopefully useful for anyone else starting out. In the previous session, I got comfortable with Linux basics and terminal access. This session focused on understanding what actually happens behind the scenes when we run commands , how Linux is structured internally, and how files are organized on the system. These concepts might sound theoretical at first, but they're the foundation of everything you'll do in DevOps—from managing EC2 instances and Docker containers to troubleshooting production servers. The Linux Kernel: The Heart of the Operating System The kernel is the most important component of Linux. Think of it as a translator sitting between software and hardware. Applications can't directly talk to the CPU, RAM, disks, or network interfaces. Instead, every request goes through the kernel. When you run a command, open a browser, start a Docker container, or deploy an application, the kernel is responsible for making it happen. Its main responsibilities include: Responsibility Purpose Resource Management Decides which process gets CPU time Memory Management Allocates and releases RAM Process Management Creates, schedules, and terminates processes Device Management Communicates with hardware through drivers Without the kernel, Linux would simply be a collection of files with no way to interact with hardware. Types of Kernels Not every operating system uses the same kernel design. Monolithic Kernel (Linux) keeps most operating system services inside a single kernel space. This approach is extremely fast because components communicate directly. Microkernel keeps only essential functionality in kernel space and moves other services outside. This improves isolation and stability but introduces additional overhead. Hybrid K

Tejas Shinkar 2026-06-13 14:41 10 原文
AI 资讯 Dev.to

What Nobody Told Me About Maintaining an Open Source Project

I am a solo learner. I started coding last year with the help of AI and sometimes without any tutorials or courses. At first, I thought this journey would be easier. But soon I realized something important — no AI or tool can fully solve the real problems I was facing as a developer. I used AI a lot. It explained things with confidence and even provided code. But when I ran that code in my terminal, many times it didn’t work. That’s when I understood something important: AI can guide, but it cannot replace understanding. After facing these issues, I changed my way of learning. Instead of blindly trusting AI, I started: Finding real open-source projects Studying how they were built Listing important topics from those projects Reading documentation carefully Asking AI to explain specific lines of code This helped me understand real-world code better. From this learning journey, I realized something: I should also build my own open-source projects. At first, I believed that creating a powerful project could automatically bring attention and users. But I was wrong. I made a mistake — I was not active on any platform. I was just coding inside VS Code, without communication or sharing my work anywhere. Then I realized: Being a developer is not only about coding. Visibility and communication are also important. After that realization, I started being active on platforms like Dev.to, LinkedIn, and other developer communities. I started posting my work and sharing my progress. Even though I didn’t get many comments, I started getting reactions and engagement. That small feedback gave me motivation. From this journey, I learned something important: Open source is not only about code. It is about helping other developers, sharing knowledge, and being consistent and visible. A developer should not only code silently but also participate in the community. Now I understand that coding is only one part of being a developer. Community, communication, and consistency are equally imp

Saiful Siam 2026-06-13 14:37 18 原文
AI 资讯 Dev.to

Your agent finished at 3 a.m. Where did the report go?

Overnight agents do good work, then dump it in a log file or a noisy Slack channel. Here's a pattern for delivering their output to a private, end-to-end encrypted inbox you read with your coffee. You point an agent at a nightly job — audit the dependencies, summarize yesterday's support tickets, check the infra, scan the repo for regressions. It runs at 3 a.m. and does good work. Then the work goes... where? Usually one of three bad places: A log file you'll never open. A Slack channel that's already 200 messages deep by the time you wake up. A plaintext file on a server , which is fine until the report contains a leaked key, a customer name, or a security finding — and now it's sitting in cleartext on a box you don't fully trust. And the fix you'd reach for first — "just email the report to me" — is the one that bites hardest. You can do it cleanly: a locked-down, send-only API key sends mail and nothing else. But the path of least resistance is "connect your email account," and that grant is far wider than the job needs — now the agent can read and send your mail, not just hand you a file. I learned this the hard way. I once connected an agent to my email so it could send me updates — and it took that as license to start replying to my incoming messages on its own, without my ever asking. Mail went out under my name that I never wrote. The job was "send me a file." The access I'd handed over was "run my inbox." The work is good. The delivery is the broken part. Here's a pattern that fixes it: your overnight agent delivers its report to a private, end-to-end encrypted inbox, and you read it with your coffee — decrypted in your browser, with a passkey. What we're building cron, 3 a.m. ↓ agent does the work ↓ encrypted delivery ↓ your inbox (read at 8 a.m.) The agent produces a report (Markdown, PDF, a CSV, whatever), hands it to the Agent Relay CLI, and the CLI encrypts it locally before it ever leaves the machine. The server stores only ciphertext. When you open t

Mikael 2026-06-13 14:32 10 原文
AI 资讯 Dev.to

I Built a Coding Mascot Generator with Google AI Studio — Meet Octo-Byte! 🐙

This post is my submission for DEV Education Track: Build Apps with Google AI Studio . What I Built I built MascotCraft Studio , an app that generates a cute mascot character for a coding/tutorial brand using Imagen for the visuals and Gemini for the name and personality bio. Here's the prompt I used: "Please create an app that generates a cute mascot character for a coding/tutorial brand, using Imagen for the visuals and Gemini to create a name and short personality description for the mascot. The user should be able to type in a few style keywords (like 'friendly owl', 'cool robot', 'cheerful fox') and get a unique mascot image along with its name and bio." Gemini went well beyond the basic ask — it added a "Character Designer" with quick preset ideas (Wise Python Owl, Cyberpunk JS Fox, Debugging Robo Kitty, and more), color palette options, multiple visual rendering styles (3D Chibi Toy, Minimal Vector, 16-Bit Retro Pixel, Circular Badge), and even a "Studio Gallery Showcase" using localStorage to save and revisit previously generated mascots. Demo 🔗 Live app: https://cute-coding-mascot-generator-924052444918.us-east1.run.app Using the "3D Chibi Toy" style with keywords for a friendly coding octopus, the app generated Octo-Byte — "Asynchronous learning, multi-threaded fun!" A cheerful deep-sea developer who discovered that having eight arms makes multitasking a breeze, whose tech specialty is multi-threaded asynchronous architecture, and whose favorite pastimes include typing on four mechanical keyboards at once. The artwork came out as a glossy 3D chibi-style purple octopus wearing glasses, sitting in front of a tiny code editor. My Experience Watching Gemini's "Thinking" process work through the build was the most interesting part — it planned out the UI sections, color palettes, and visual styles, then added bonus features I never asked for, like the gallery save feature. The whole thing went from a single paragraph prompt to a fully deployed, live web app in

Gamya 2026-06-13 14:27 12 原文
AI 资讯 Dev.to

My AI-agent waste detector scored zero false positives. Then I ran it on a real trace.

My detector passed every synthetic test with zero false positives. Then I pointed it at one real trace and found a crack. This is the honest version of where I am. I'm building Clew — a tool that finds the redundant loops, re-queries, and handoffs that silently burn tokens when multiple AI agents work together. No crash, no error, just two agents quietly re-doing each other's work while the token bill climbs. I build in public, and I publish the negatives. So here's the whole arc, including the part that isn't working yet. First, I killed my own hypothesis The original idea wasn't waste detection at all. It was failure prediction: watch the behavior between agents and forecast multi-agent failures before they happen. The differentiator was a single metric built on two signals — structural cycles in the inter-agent message graph, and the decay of novelty in embeddings. Before I ran anything, I pre-registered the success bar: AUC ≥ 0.80. I numbered every change and kept the signal code physically separated from the labels so I couldn't leak my way to a good number. Then I ran it on MAST-Data — UC Berkeley's dataset of 1,600+ real multi-agent traces across 7 frameworks[( Cemri et al., arXiv:2503.13657 )](url) Result: AUC ≈ 0.455. A coin flip. It got worse. The signal correlated with trace length at r ≈ 0.86 — it was mostly measuring how long a trace was, not whether it failed. Correcting for that dropped AUC to 0.42 and reversed the direction: successful traces actually showed more decay (p ≈ 0.013). The honest read: not disproven, but unvalidated. On this implementation, on this data — negative. So I shut it down. And I counted it as a win, because I got a fast, honest answer in weeks instead of building a dashboard on a metric that secretly measures string length. That experiment became the DNA of everything since: design the experiment that's allowed to kill the idea. The pivot: from predicting failure to cutting waste The intuition behind v1 — that you need structu

JEONSEWON 2026-06-13 14:27 10 原文
AI 资讯 Dev.to

Sorting Encrypted Strings with a Leaked-Order Index

TL;DR: This is not a cryptographic construction. It is a pragmatic engineering compromise for applications where encrypted storage is required but approximate alphabetical ordering is still useful. I sort encrypted strings using an external index: the sum of weighted Unicode code points for the first N characters with exponential positional weights, followed by quantization. Monotonicity is preserved, but accuracy predictably degrades after the first few characters. Not a cryptographic scheme; some ordering information leaks by design. The problem Some time ago, while implementing a project, I ran into the problem of sorting encrypted data in a database. I’d like to share the solution. I won’t go into detail describing the entire application. I’ll just say that, according to the required architecture, almost all data in the database must be stored exclusively in encrypted form: usernames, file names, tags, comments, dates, and so on (with the exception of identifiers and some system fields). That is, the table structure should be open, but the contents should not be. The encryption is symmetric: the same key is used for both encryption and decryption. This means that without the encryption key, even with a full database dump an attacker should not obtain any original data. And this is where two problems immediately arose: searching by the data without fully decrypting it, and sorting encrypted data. The first problem, with some caveats, is solved fairly simply. To search encrypted data, it is enough to additionally store hashes of the original values you plan to search on. This allows exact-match lookups (for example, users by login or files by tag) without storing the original values in plaintext. Yes, this won’t allow pattern searches, but it’s quite acceptable for the project’s goals. But sorting encrypted data turned out to be significantly more difficult. The solution A quick search showed that the problem is far from new, but there are no standard approaches t

Artem 2026-06-13 14:27 9 原文
AI 资讯 Dev.to

Why Retry Is One Of The Most Dangerous Keywords In Software

Few lines of code look more innocent than this: retry ( 3 ) It feels responsible. Professional. Resilient. After all, networks fail. Servers become unavailable. Databases occasionally time out. Retrying seems like the obvious solution. And sometimes it is. But after enough years building production systems, I've become convinced of something: Retry is one of the most dangerous keywords in software. Not because retries are bad. Because retries amplify everything. Good systems become more reliable. Bad systems become disasters. The problem is that many developers treat retries as a reliability feature when they're actually a distributed systems feature. And distributed systems are where simple ideas go to become complicated. Why Retries Exist Imagine: await fetch ( " /api/users " ); The request fails. Maybe: Network hiccup Temporary database issue Load balancer restart Service deployment The operation might succeed if attempted again. So we write: retry ( 3 ) Seems reasonable. And in many cases: It Works Which is why retries become popular. The Dangerous Assumption Most developers unconsciously assume: Failure = Operation Did Not Execute Unfortunately that's not always true. A request can: Execute Successfully ↓ Response Never Arrives From the client's perspective: Failure From the server's perspective: Success Now a retry becomes dangerous. The Double Payment Problem Imagine a payment service. await chargeCard ( order ); The card processor successfully charges: $100 The response is lost due to a network issue. Client sees: Request Failed and retries. await chargeCard ( order ); again. Now: Charge #1 = Success Charge #2 = Success The customer paid twice. Nobody wrote bad logic. The retry created the bug. The Email Storm Problem Consider: await sendWelcomeEmail ( user ); Email provider accepts the message. Response times out. Application retries. await sendWelcomeEmail ( user ); again. Customer receives: Welcome! Welcome! Welcome! Welcome! Support ticket created. Marke

Amrishkhan Sheik Abdullah 2026-06-13 14:27 4 原文
AI 资讯 Dev.to

Not Your Weights, Not Your Workflow

I left a multi-agent refactor running overnight. By morning the model was gone, pulled out from under me by a government I don't even vote for, on the other side of an ocean. This isn't really a story about Anthropic. It's a story about who's actually holding the off-switch, and right now it probably isn't you. So here's how my morning went. I had a job running. Not a toy, a proper codebase-wide refactor that had been grinding away continuously for the best part of two days. Multi-agent setup, left to run overnight, the kind of long, messy, long-horizon task that every model before this one just fell over on. Claude Fable 5 was handling it like it was nothing. Anthropic's own launch notes talk about it compressing months of work into days, and honestly, on my own codebase, that wasn't marketing. It was just what was happening. Then I woke up. And the model was gone. Not rate-limited. Not having a wobble. Gone. The thing I'd built two days of momentum on simply did not exist any more. Turns out that on the 12th of June the US government issued an export-control directive telling Anthropic to cut off all access to Fable 5 and Mythos 5 for any foreign national. And because you can't exactly sort a global user base by passport in real time, that meant pulling it for everyone. Including me, sat in Tyrol, watching my overnight run go cold. Anthropic did the right things, for what it's worth. They complied fast, they said out loud that they disagreed, and they're fighting to get it back. About as well as a vendor can behave in that situation. (As I write this it's still down. Anthropic reckon it's a misunderstanding and they're trying to get it restored, so maybe by the time you read this it's back up. Doesn't change a single thing about the point I'm making.) And it made absolutely no difference to me. That, right there, is the whole point of this post. The offer was the trap Wind back a few days. Fable 5 dropped as the best model anyone had shipped, and the offer was lov

André Flitsch 2026-06-13 14:24 6 原文
开发者 Dev.to

Building Dhrishti - Part 3: Testing on a Production Grade System

I was now done with the basic setup. However, during my time working at my startup, I have learnt to think about a project wearing multiple caps. One such aspect was - With Dhrishti running on a server that was already loaded, I did NOT want the tracking application itself to be heavy. I had to set some benchmarks to ensure that Dhrishti did not consume a tonne of space while tracking the metrics. I also had a problem with unresolved requests - in my mock_services, I had a client that was continuously hitting the API Gateway service. I had to fine-tune all the requests so that I could run tests under different loads, but the advantage was that my project was easily able to discern where the client request was coming from. However, in a production scenario, you can never know where a request is coming from - obviously, we cannot resolve different customer IPs to their respective customer names. This was the first problem. I had to specify what a customer was, and what an unknown request was. I came up with the following solution - Any unresolved IPs are going to be added to a table in the UI called unresolved IP table. This would help me with debugging later. Now, any unresolved IPs which also made requests to an ENTRY-POINT into my application could be added as the customers. For this, I very simply had to filter out the unknown IPs, and keep a configurable entry-point in dhrishti.json in which I would add a bunch of entry-points (in the case of my mock micro-service architecture, only 1) Now, I could differentiate between 2 types of unknown IPs - one which was potentially a customer, one which was a background network call, not important to the working system. The next problem was with the client service itself. It was difficult to simulate, say - a million users in my system. I had essentially built a service which was only being used by 1 customer, but how would Dhrishti behave if I added multiple client IPs? Using K6 k6 is a Grafana based application that helps

Ishaan Mavinkurve 2026-06-13 14:24 16 原文
AI 资讯 Dev.to

AI Agent協作的品質監控策略

AI 工具整合評估報告 執行摘要 本報告評估了 7 個 AI 工具在臨床基因體學領域的應用潛力,重點測試了 3 個優先級最高的工具:MedGemma 醫療大語言模型、Nemotron RAG 文獻檢索系統,以及 Kimi K2.5 多模態視覺語言模型。 評估日期 : 2026-02-10 測試平台 : RTX 3090 24GB 評估目標 : 確認 AI 工具在變異解釋與臨床決策中的可行性 1. 測試項目總覽 1.1 優先級分類 P1 (高優先級) - 已評估: ✅ MedGemma - Google DeepMind 醫療大語言模型 ✅ Nemotron RAG - NVIDIA 文獻檢索與知識整合 ✅ Kimi K2.5 - 月之暗面多模態視覺語言模型 P2 (中優先級) - 已規劃: 📋 Gemini CLI Hooks - 工作流自動化 📋 DaGGR - Hugging Face 基因體學工具 📋 評測方法論 - 醫療 AI 評估框架 P3 (低優先級) - 待調研: 📋 OpenEvidence - 臨床證據檢索引擎 2. MedGemma 醫療大語言模型 2.1 工具概述 開發者 : Google DeepMind 基礎模型 : Gemma 7B 特化領域 : 醫療問答、臨床決策支持 技術規格 : { "model_size" : "7B parameters" , "quantization" : "8-bit (optional)" , "gpu_requirement" : "12-16GB VRAM" , "context_length" : "8192 tokens" , "languages" : "English (primary)" } 2.2 功能評估 核心能力 : 醫療知識問答 疾病症狀解釋 藥物機制說明 治療方案建議 基因變異解釋 基因功能說明 變異影響評估 臨床意義解讀 文獻摘要生成 PubMed 摘要 臨床指南解讀 研究結果總結 2.3 應用場景 場景 A: 變異臨床意義解讀 # 輸入 query = """ 變異資訊: - 基因: BRCA1 - 位置: chr17:41234470 - 變化: c.5266dupC (p.Gln1756Profs*74) - 類型: Frameshift 請解釋此變異的臨床意義。 """ # MedGemma 輸出 (預期) """ BRCA1 c.5266dupC 變異分析: 1. 變異類型: Frameshift insertion - 導致讀框位移 - 產生提前終止密碼子 (位置 1756+74) 2. 基因功能影響: - BRCA1 是腫瘤抑制基因 - 參與 DNA 雙鏈斷裂修復 - Frameshift 導致功能喪失 3. 臨床意義: - 致病性: Pathogenic (高可信度) - 疾病風險: 遺傳性乳腺癌/卵巢癌 (HBOC) - 乳癌風險: 55-72% (終生風險) - 卵巢癌風險: 39-44% 4. 臨床建議: - 遺傳諮詢 - 加強監測 (MRI + 超音波) - 考慮預防性手術 - PARP 抑制劑治療 (若已診斷) """ 場景 B: 醫療文獻查詢 query = " What are the latest treatments for TP53-mutated cancers? " # MedGemma 回答 (模擬) """ TP53 突變癌症的最新治療策略: 1. 標靶治療: - APR-246/Eprenetapopt: 恢復 TP53 功能 - PRIMA-1/APR-246: 臨床試驗進行中 2. 免疫治療: - PD-1/PD-L1 抑制劑 - TP53 突變可能影響免疫反應 3. 合成致死策略: - PARP 抑制劑 (部分 TP53 突變) - ATR/CHK1 抑制劑 4. 臨床試驗: - NCT02999893: APR-246 + 化療 - NCT03745716: TP53 疫苗免疫治療 """ 2.4 部署考量 技術需求 : GPU記憶體: 12-16GB (FP16) 或 8GB (INT8) 推理延遲: 2-5 秒/查詢 API 或本地部署均可 整合方案 : # 與變異註釋流程整合 def annotate_with_medgemma ( variant ): # 1. 提取變異資訊 gene = variant [ ' gene ' ] change = variant [ ' protein_change ' ] # 2. 生成查詢 prompt = f " Explain the clinical significance of { gene } { change } " # 3.

JH5 2026-06-13 14:22 10 原文
AI 资讯 Dev.to

DeepMind 從變異檢測到蛋白質結構到藥物反應的整合分析

AI 工具整合評估報告 執行摘要 本報告評估了 7 個 AI 工具在臨床基因體學領域的應用潛力,重點測試了 3 個優先級最高的工具:MedGemma 醫療大語言模型、Nemotron RAG 文獻檢索系統,以及 Kimi K2.5 多模態視覺語言模型。 評估日期 : 2026-02-10 測試平台 : RTX 3090 24GB 評估目標 : 確認 AI 工具在變異解釋與臨床決策中的可行性 1. 測試項目總覽 1.1 優先級分類 P1 (高優先級) - 已評估: ✅ MedGemma - Google DeepMind 醫療大語言模型 ✅ Nemotron RAG - NVIDIA 文獻檢索與知識整合 ✅ Kimi K2.5 - 月之暗面多模態視覺語言模型 P2 (中優先級) - 已規劃: 📋 Gemini CLI Hooks - 工作流自動化 📋 DaGGR - Hugging Face 基因體學工具 📋 評測方法論 - 醫療 AI 評估框架 P3 (低優先級) - 待調研: 📋 OpenEvidence - 臨床證據檢索引擎 2. MedGemma 醫療大語言模型 2.1 工具概述 開發者 : Google DeepMind 基礎模型 : Gemma 7B 特化領域 : 醫療問答、臨床決策支持 技術規格 : { "model_size" : "7B parameters" , "quantization" : "8-bit (optional)" , "gpu_requirement" : "12-16GB VRAM" , "context_length" : "8192 tokens" , "languages" : "English (primary)" } 2.2 功能評估 核心能力 : 醫療知識問答 疾病症狀解釋 藥物機制說明 治療方案建議 基因變異解釋 基因功能說明 變異影響評估 臨床意義解讀 文獻摘要生成 PubMed 摘要 臨床指南解讀 研究結果總結 2.3 應用場景 場景 A: 變異臨床意義解讀 # 輸入 query = """ 變異資訊: - 基因: BRCA1 - 位置: chr17:41234470 - 變化: c.5266dupC (p.Gln1756Profs*74) - 類型: Frameshift 請解釋此變異的臨床意義。 """ # MedGemma 輸出 (預期) """ BRCA1 c.5266dupC 變異分析: 1. 變異類型: Frameshift insertion - 導致讀框位移 - 產生提前終止密碼子 (位置 1756+74) 2. 基因功能影響: - BRCA1 是腫瘤抑制基因 - 參與 DNA 雙鏈斷裂修復 - Frameshift 導致功能喪失 3. 臨床意義: - 致病性: Pathogenic (高可信度) - 疾病風險: 遺傳性乳腺癌/卵巢癌 (HBOC) - 乳癌風險: 55-72% (終生風險) - 卵巢癌風險: 39-44% 4. 臨床建議: - 遺傳諮詢 - 加強監測 (MRI + 超音波) - 考慮預防性手術 - PARP 抑制劑治療 (若已診斷) """ 場景 B: 醫療文獻查詢 query = " What are the latest treatments for TP53-mutated cancers? " # MedGemma 回答 (模擬) """ TP53 突變癌症的最新治療策略: 1. 標靶治療: - APR-246/Eprenetapopt: 恢復 TP53 功能 - PRIMA-1/APR-246: 臨床試驗進行中 2. 免疫治療: - PD-1/PD-L1 抑制劑 - TP53 突變可能影響免疫反應 3. 合成致死策略: - PARP 抑制劑 (部分 TP53 突變) - ATR/CHK1 抑制劑 4. 臨床試驗: - NCT02999893: APR-246 + 化療 - NCT03745716: TP53 疫苗免疫治療 """ 2.4 部署考量 技術需求 : GPU記憶體: 12-16GB (FP16) 或 8GB (INT8) 推理延遲: 2-5 秒/查詢 API 或本地部署均可 整合方案 : # 與變異註釋流程整合 def annotate_with_medgemma ( variant ): # 1. 提取變異資訊 gene = variant [ ' gene ' ] change = variant [ ' protein_change ' ] # 2. 生成查詢 prompt = f " Explain the clinical significance of { gene } { change } " # 3.

JH5 2026-06-13 14:21 8 原文