Gemini 3.6 Flash大模型开发实战:从API调用到创意工具构建
在AI工具快速发展的今天如何高效利用大模型能力构建个性化应用成为开发者关注的重点。Gemini 3.6 Flash作为轻量高效的AI模型为自定义工具开发提供了新的可能性。本文将完整介绍从环境搭建到实战落地的全流程帮助开发者快速掌握这一技术。1. Gemini 3.6 Flash核心概念解析1.1 什么是Gemini 3.6 FlashGemini 3.6 Flash是Google推出的轻量级大语言模型版本专注于快速推理和低成本部署。与标准版本相比Flash版本在保持核心能力的同时大幅优化了响应速度特别适合需要实时交互的应用场景。该模型基于Transformer架构通过模型蒸馏和量化技术实现性能与效率的平衡。在实际测试中Flash版本的推理速度比标准版本快3-5倍同时保持85%以上的核心能力这使其成为构建自定义AI工具的理想选择。1.2 核心优势与适用场景Gemini 3.6 Flash的主要优势体现在三个方面首先是响应速度在处理简单任务时几乎实现实时反馈其次是成本效益API调用成本显著低于标准版本最后是部署灵活性支持多种规模的硬件环境。典型应用场景包括智能客服助手快速响应用户常见问题内容生成工具辅助写作、代码生成等任务数据分析助手快速解析和总结结构化数据教育辅助工具实时答疑和学习指导2. 环境准备与API配置2.1 获取API密钥使用Gemini 3.6 Flash首先需要获取API访问权限。前往Google AI Studio官网注册账号并申请API密钥目前该服务提供免费额度供开发者测试使用。注册完成后在控制台创建新的API密钥建议为不同项目创建独立的密钥以便管理。重要安全提示API密钥应妥善保管切勿直接硬编码在客户端代码中。2.2 安装必要依赖基于Python环境进行开发需要安装以下核心依赖包# requirements.txt google-generativeai0.3.0 python-dotenv1.0.0 requests2.28.0安装命令pip install -r requirements.txt对于其他语言环境Gemini API提供RESTful接口支持HTTP直接调用。本文以Python为例进行演示其他语言的实现逻辑类似。2.3 基础配置验证创建配置文件管理API密钥和环境设置# config.py import os from dotenv import load_dotenv load_dotenv() class GeminiConfig: API_KEY os.getenv(GEMINI_API_KEY) MODEL_NAME gemini-3.6-flash BASE_URL https://generativelanguage.googleapis.com/v1beta classmethod def validate_config(cls): if not cls.API_KEY: raise ValueError(GEMINI_API_KEY环境变量未设置)3. 核心API使用详解3.1 基础文本生成功能Gemini 3.6 Flash最基础的功能是文本生成以下示例展示完整的调用流程# basic_usage.py import google.generativeai as genai from config import GeminiConfig def initialize_client(): 初始化Gemini客户端 genai.configure(api_keyGeminiConfig.API_KEY) return genai.GenerativeModel(GeminiConfig.MODEL_NAME) def generate_text(prompt, temperature0.7, max_tokens1000): 基础文本生成函数 model initialize_client() try: response model.generate_content( prompt, generation_configgenai.types.GenerationConfig( temperaturetemperature, max_output_tokensmax_tokens, ) ) return response.text except Exception as e: print(fAPI调用失败: {e}) return None # 使用示例 if __name__ __main__: prompt 用Python写一个快速排序算法的实现并添加详细注释 result generate_text(prompt) print(生成结果:, result)3.2 流式输出处理对于长文本生成任务使用流式输出可以提升用户体验# streaming_example.py def stream_generation(prompt): 流式文本生成示例 model initialize_client() response model.generate_content( prompt, streamTrue ) for chunk in response: print(chunk.text, end, flushTrue) print() # 换行 # 使用示例 stream_generation(详细介绍机器学习中的梯度下降算法)3.3 多轮对话管理构建对话工具需要维护会话上下文# conversation_manager.py class ConversationManager: def __init__(self): self.model initialize_client() self.history [] def add_message(self, role, content): 添加对话记录 self.history.append({role: role, content: content}) def generate_response(self, user_input, max_history10): 生成对话响应 self.add_message(user, user_input) # 保持最近N轮对话 recent_history self.history[-max_history*2:] if len(self.history) max_history*2 else self.history # 构建对话上下文 conversation_context \n.join([ f{msg[role]}: {msg[content]} for msg in recent_history ]) prompt f基于以下对话历史请生成自然连贯的回复 {conversation_context} 请以assistant身份回复 response self.model.generate_content(prompt) assistant_reply response.text self.add_message(assistant, assistant_reply) return assistant_reply # 使用示例 manager ConversationManager() response manager.generate_response(你好请帮我解释一下什么是神经网络) print(response)4. 自定义创意工具实战案例4.1 代码审查助手开发下面我们构建一个实用的代码审查工具帮助开发者提高代码质量# code_review_tool.py import re from typing import Dict, List class CodeReviewAssistant: def __init__(self): self.model initialize_client() def analyze_code(self, code: str, language: str python) - Dict: 分析代码并提供改进建议 prompt f 请对以下{language}代码进行专业审查 {code} 请从以下角度提供详细建议 1. 代码风格和规范 2. 潜在的性能问题 3. 安全性考虑 4. 可读性和维护性 5. 具体的改进代码示例 以结构化格式回复。 response self.model.generate_content(prompt) return self._parse_review_response(response.text) def _parse_review_response(self, response: str) - Dict: 解析审查结果 sections re.split(r\n\d\.\s, response) return { style_issues: sections[1] if len(sections) 1 else , performance_issues: sections[2] if len(sections) 2 else , security_concerns: sections[3] if len(sections) 3 else , readability_suggestions: sections[4] if len(sections) 4 else , improvement_examples: sections[5] if len(sections) 5 else } # 使用示例 reviewer CodeReviewAssistant() sample_code def process_data(data): result [] for i in range(len(data)): if data[i] 0: result.append(data[i] * 2) return result review_result reviewer.analyze_code(sample_code) for category, feedback in review_result.items(): print(f{category.upper()}:\n{feedback}\n)4.2 技术文档生成器创建自动化技术文档生成工具# doc_generator.py class DocumentationGenerator: def __init__(self): self.model initialize_client() def generate_api_docs(self, code_snippet: str, framework: str flask) - str: 生成API接口文档 prompt f 根据以下{framework}框架的代码片段生成完整的API文档 {code_snippet} 文档应包含 - 接口说明 - 请求参数说明 - 响应格式 - 使用示例 - 错误码说明 使用Markdown格式输出。 response self.model.generate_content(prompt) return response.text def generate_readme(self, project_description: str, tech_stack: List[str]) - str: 生成项目README文档 prompt f 为以下项目生成专业的README.md文件 项目描述{project_description} 技术栈{, .join(tech_stack)} 包含以下章节 - 项目简介 - 功能特性 - 安装部署 - 使用说明 - API文档 - 贡献指南 - 许可证信息 response self.model.generate_content(prompt) return response.text # 使用示例 doc_gen DocumentationGenerator() api_code app.route(/api/users, methods[POST]) def create_user(): data request.get_json() # 用户创建逻辑 return jsonify({id: 1, name: data[name]}) docs doc_gen.generate_api_docs(api_code) print(docs)4.3 智能学习笔记助手构建辅助学习的知识整理工具# study_assistant.py class StudyAssistant: def __init__(self): self.model initialize_client() def summarize_content(self, content: str, subject: str) - str: 总结学习内容 prompt f 请将以下{subject}相关的内容整理成结构化的学习笔记 {content} 要求 - 提取核心概念 - 分点总结关键知识 - 提供实际应用示例 - 标注重点难点 - 建议进一步学习方向 response self.model.generate_content(prompt) return response.text def generate_quiz(self, topic: str, difficulty: str medium) - List[Dict]: 生成学习测验题目 prompt f 为{topic}主题生成{difficulty}难度的测验题目包含 - 5道选择题 - 3道简答题 - 2道应用题 每道题目都要提供参考答案。 response self.model.generate_content(prompt) return self._parse_quiz_response(response.text) def _parse_quiz_response(self, response: str) - List[Dict]: 解析测验题目 # 实现解析逻辑 questions [] lines response.split(\n) current_question {} for line in lines: if line.strip().startswith(选择题) or line.strip().startswith(简答题): if current_question: questions.append(current_question) current_question {type: , question: , options: [], answer: } # 更复杂的解析逻辑... return questions5. 高级功能与性能优化5.1 批量处理优化当需要处理大量任务时合理的批量策略可以显著提升效率# batch_processor.py import asyncio from concurrent.futures import ThreadPoolExecutor class BatchProcessor: def __init__(self, max_workers5): self.model initialize_client() self.executor ThreadPoolExecutor(max_workersmax_workers) async def process_batch(self, prompts: List[str]) - List[str]: 异步批量处理提示词 loop asyncio.get_event_loop() tasks [ loop.run_in_executor(self.executor, self._process_single, prompt) for prompt in prompts ] results await asyncio.gather(*tasks, return_exceptionsTrue) return results def _process_single(self, prompt: str) - str: 处理单个提示词 try: response self.model.generate_content(prompt) return response.text except Exception as e: return f处理失败: {str(e)} # 使用示例 async def main(): processor BatchProcessor() prompts [ 总结Python列表推导式的用法, 解释HTTP状态码的含义, 比较RESTful API和GraphQL的优缺点 ] results await processor.process_batch(prompts) for i, result in enumerate(results): print(f结果 {i1}: {result[:100]}...) # asyncio.run(main())5.2 缓存机制实现为重复查询添加缓存层减少API调用次数# cached_generator.py import hashlib import pickle from datetime import datetime, timedelta class CachedContentGenerator: def __init__(self, cache_dir.gemini_cache, ttl_hours24): self.model initialize_client() self.cache_dir Path(cache_dir) self.cache_dir.mkdir(exist_okTrue) self.ttl timedelta(hoursttl_hours) def _get_cache_key(self, prompt: str) - str: 生成缓存键 return hashlib.md5(prompt.encode()).hexdigest() def _get_cache_path(self, cache_key: str) - Path: 获取缓存文件路径 return self.cache_dir / f{cache_key}.pkl def generate_with_cache(self, prompt: str) - str: 带缓存的文本生成 cache_key self._get_cache_key(prompt) cache_path self._get_cache_path(cache_key) # 检查缓存 if cache_path.exists(): with open(cache_path, rb) as f: cached_data pickle.load(f) if datetime.now() - cached_data[timestamp] self.ttl: return cached_data[content] # 调用API生成新内容 response self.model.generate_content(prompt) content response.text # 更新缓存 cache_data { content: content, timestamp: datetime.now(), prompt_hash: cache_key } with open(cache_path, wb) as f: pickle.dump(cache_data, f) return content6. 错误处理与故障排查6.1 常见API错误处理在实际使用中需要妥善处理各种API异常# error_handler.py from google.api_core import exceptions import time class RobustGeminiClient: def __init__(self, max_retries3, backoff_factor2): self.model initialize_client() self.max_retries max_retries self.backoff_factor backoff_factor def generate_with_retry(self, prompt: str, **kwargs) - str: 带重试机制的文本生成 for attempt in range(self.max_retries): try: response self.model.generate_content(prompt, **kwargs) return response.text except exceptions.ResourceExhausted as e: # API配额耗尽 if attempt self.max_retries - 1: raise e wait_time self.backoff_factor ** attempt print(f配额不足等待{wait_time}秒后重试...) time.sleep(wait_time) except exceptions.DeadlineExceeded as e: # 超时错误 if attempt self.max_retries - 1: raise e print(f请求超时第{attempt1}次重试...) except exceptions.InvalidArgument as e: # 参数错误不需要重试 print(f参数错误: {e}) raise e except Exception as e: # 其他未知错误 if attempt self.max_retries - 1: raise e print(f未知错误: {e}, 重试中...) time.sleep(1) raise Exception(所有重试尝试均失败) # 使用示例 robust_client RobustGeminiClient() try: result robust_client.generate_with_retry(生成一段技术文档) print(result) except Exception as e: print(f最终失败: {e})6.2 速率限制管理合理控制API调用频率避免触发限制# rate_limiter.py import time from threading import Lock class RateLimiter: def __init__(self, calls_per_minute60): self.calls_per_minute calls_per_minute self.last_reset time.time() self.call_count 0 self.lock Lock() def acquire(self): 获取调用许可 with self.lock: current_time time.time() # 每分钟重置计数器 if current_time - self.last_reset 60: self.call_count 0 self.last_reset current_time # 检查是否超过限制 if self.call_count self.calls_per_minute: sleep_time 60 - (current_time - self.last_reset) if sleep_time 0: time.sleep(sleep_time) self.call_count 0 self.last_reset time.time() self.call_count 1 # 集成速率限制的客户端 class RateLimitedClient: def __init__(self): self.model initialize_client() self.limiter RateLimiter(45) # 保守限制留有余量 def generate_content(self, prompt: str) - str: 带速率限制的生成方法 self.limiter.acquire() response self.model.generate_content(prompt) return response.text7. 安全最佳实践7.1 输入验证与过滤防止恶意输入和提示词注入攻击# security_validator.py import re class InputValidator: def __init__(self): self.suspicious_patterns [ r(?i)(password|token|key|secret).*[:]\s*[\][^\]*[\], r(?i)(system|exec|eval|subprocess|os\.system), r(?i)(delete|drop|alter|update).*(table|database), ] def validate_prompt(self, prompt: str) - bool: 验证提示词安全性 # 检查长度限制 if len(prompt) 10000: return False # 检查可疑模式 for pattern in self.suspicious_patterns: if re.search(pattern, prompt): return False return True def sanitize_input(self, user_input: str) - str: 清理用户输入 # 移除潜在的危险字符 sanitized re.sub(r[;$|], , user_input) # 限制连续空格 sanitized re.sub(r\s, , sanitized) return sanitized.strip() # 安全增强的客户端 class SecureGeminiClient: def __init__(self): self.model initialize_client() self.validator InputValidator() def safe_generate(self, prompt: str) - str: 安全的内容生成 if not self.validator.validate_prompt(prompt): raise ValueError(提示词包含不安全内容) sanitized_prompt self.validator.sanitize_input(prompt) response self.model.generate_content(sanitized_prompt) # 对输出进行基本检查 if self._contains_sensitive_info(response.text): return 出于安全考虑此内容无法显示 return response.text def _contains_sensitive_info(self, text: str) - bool: 检查是否包含敏感信息 sensitive_indicators [ API_KEY, PASSWORD, SECRET, PRIVATE_KEY ] return any(indicator in text.upper() for indicator in sensitive_indicators)7.2 内容审核集成添加内容安全层确保生成内容符合规范# content_moderator.py class ContentModerator: def __init__(self): self.prohibited_topics [ 暴力, 仇恨言论, 非法活动, 个人信息泄露 ] def moderate_content(self, content: str) - dict: 内容审核 issues [] for topic in self.prohibited_topics: if topic in content: issues.append(f涉及禁止话题: {topic}) # 检查内容长度和质量 if len(content.strip()) 10: issues.append(内容过短或质量不足) if len(content) 10000: issues.append(内容过长) return { approved: len(issues) 0, issues: issues, content: content if len(issues) 0 else 内容未通过审核 } # 完整的安全流程 class ProductionReadyClient: def __init__(self): self.generator SecureGeminiClient() self.moderator ContentModerator() self.rate_limiter RateLimiter(30) def generate_safe_content(self, prompt: str) - dict: 生产环境安全的内容生成 try: self.rate_limiter.acquire() # 生成内容 content self.generator.safe_generate(prompt) # 内容审核 moderation_result self.moderator.moderate_content(content) return { success: True, content: moderation_result[content], moderation_issues: moderation_result[issues], timestamp: datetime.now().isoformat() } except Exception as e: return { success: False, error: str(e), timestamp: datetime.now().isoformat() }8. 部署与监控方案8.1 Docker容器化部署创建生产环境的Docker配置# Dockerfile FROM python:3.9-slim WORKDIR /app # 安装依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY . . # 创建非root用户 RUN useradd -m -u 1000 gemini-user USER gemini-user # 设置环境变量 ENV PYTHONPATH/app ENV GEMINI_API_KEYyour_api_key_here # 启动应用 CMD [python, app/main.py]对应的Docker Compose配置# docker-compose.yml version: 3.8 services: gemini-app: build: . ports: - 8000:8000 environment: - GEMINI_API_KEY${GEMINI_API_KEY} volumes: - ./logs:/app/logs restart: unless-stopped # 可选的监控服务 monitor: image: prom/prometheus ports: - 9090:9090 volumes: - ./monitoring:/etc/prometheus8.2 日志记录与监控实现完整的日志和监控系统# monitoring.py import logging from datetime import datetime class ApplicationMonitor: def __init__(self, log_fileapp.log): self.logger logging.getLogger(gemini_app) self.logger.setLevel(logging.INFO) # 文件处理器 file_handler logging.FileHandler(log_file) file_handler.setFormatter(logging.Formatter( %(asctime)s - %(name)s - %(levelname)s - %(message)s )) self.logger.addHandler(file_handler) def log_api_call(self, prompt: str, response_time: float, success: bool): 记录API调用日志 log_data { timestamp: datetime.now().isoformat(), prompt_length: len(prompt), response_time: response_time, success: success } if success: self.logger.info(fAPI调用成功: {log_data}) else: self.logger.error(fAPI调用失败: {log_data}) def log_error(self, error_type: str, error_message: str, context: dict None): 记录错误信息 error_data { error_type: error_type, error_message: error_message, context: context or {}, timestamp: datetime.now().isoformat() } self.logger.error(f应用程序错误: {error_data}) # 集成监控的客户端 class MonitoredClient: def __init__(self): self.client ProductionReadyClient() self.monitor ApplicationMonitor() def generate_with_monitoring(self, prompt: str) - dict: 带监控的内容生成 start_time time.time() try: result self.client.generate_safe_content(prompt) response_time time.time() - start_time self.monitor.log_api_call(prompt, response_time, result[success]) return result except Exception as e: response_time time.time() - start_time self.monitor.log_api_call(prompt, response_time, False) self.monitor.log_error(GenerationError, str(e), {prompt: prompt[:100]}) return { success: False, error: str(e), response_time: response_time }通过以上完整的实现方案开发者可以快速构建基于Gemini 3.6 Flash的自定义创意工具。关键是要根据具体需求选择合适的架构模式并始终将安全性和可靠性放在首位。

相关新闻

PG成为Vibe Coding的首选搭配:AI Agent开发的“大道至简“

PG成为Vibe Coding的首选搭配:AI Agent开发的“大道至简“

本文整理于 HOW 2026 演讲内容,演讲者:萧少聪,前 PostgreSQL 分会会长及中文社区主席、IvorySQL 专家顾问委员。 过去的两年里,我一直坚信一个判断:在我们现在用 AI 方法、用大语言模型进行开发的模式下,Po…

2026/10/17 13:49:01 阅读更多 →
TVP7002视频解码芯片配置指南:从模拟信号到数字视频流的完整解析

TVP7002视频解码芯片配置指南:从模拟信号到数字视频流的完整解析

1. 项目概述与芯片定位在视频处理系统的前端,模拟视频信号的数字化是至关重要的一步。无论是老旧的VHS录像带、经典的DVD播放器,还是专业广播设备输出的分量信号,都需要一个可靠的“翻译官”将模拟世界的连续波形,转换为数字世界能…

2026/10/17 14:44:43 阅读更多 →
oBeaver:本地化大语言模型运行方案与ONNX Runtime实践

oBeaver:本地化大语言模型运行方案与ONNX Runtime实践

1. oBeaver项目概述:本地化大语言模型运行方案oBeaver是一个基于ONNX Runtime的开源工具,它让开发者能够在个人电脑上高效运行各类大语言模型(LLM)。这个项目的命名创意来自海狸(Beaver)—— 这种动物以擅长…

2026/10/17 14:43:49 阅读更多 →

最新新闻

梯度消失全解析:从数学原理到ReLU、BN与残差连接的实战解决路径

梯度消失全解析:从数学原理到ReLU、BN与残差连接的实战解决路径

1. 从一个训练到一半就“躺平”的模型说起如果你亲手训练过一个稍微有点深度的神经网络,大概率见过这种让人抓狂的场景:前几个epoch损失还降得好好的,突然就卡在一个不上不下的数值,准确率死活上不去,再往后训练&#…

2026/10/18 15:01:54 阅读更多 →
LAMMPS (23 Jun 2022) + oneAPI 安装避坑:从环境变量到编译验证的完整清单

LAMMPS (23 Jun 2022) + oneAPI 安装避坑:从环境变量到编译验证的完整清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 15:01:54 阅读更多 →
MATLAB三维热力图绘制全指南:从数据组织到交互验证

MATLAB三维热力图绘制全指南:从数据组织到交互验证

简介:这份资源聚焦MATLAB三维数据可视化,面向需要绘制三维热力图的学生、科研人员与工程技术人员,帮助解决三维曲面数据难以直观呈现的问题。资源包共3个文件,包含1个m脚本、1个mat数据文件和1个png效果图,压缩包约219…

2026/10/18 15:01:54 阅读更多 →
2026 用 AI 工具分析空口包 WiFi 包:TaoToken 统一 Key 接入 tshark/Wireshark 抓包总结

2026 用 AI 工具分析空口包 WiFi 包:TaoToken 统一 Key 接入 tshark/Wireshark 抓包总结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 15:01:54 阅读更多 →
Java SHA算法实战:选型、编码、文件校验与安全边界

Java SHA算法实战:选型、编码、文件校验与安全边界

说实话,看到“SHA加密算法”这个标题,我第一反应是:这又是一个被写烂的入门Demo。但实际在项目里接手过几个跟数据校验、安全存储相关的模块之后,我觉得“SHA”这一块值得聊的东西其实非常多——很多人止步于会用MessageDigest.ge…

2026/10/18 15:01:54 阅读更多 →
JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分

JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分

JsLeakWatcher 报出一批对象,真的是内存泄漏吗:页面缓存、监听器和可达路径怎么分 页面退出后 JsLeakWatcher 报出几十个对象,团队立刻把所有缓存清掉,结果二次进入变慢,告警却仍然存在。工具发现“对象仍可达”&…

2026/10/18 15:00:54 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →