AIGC入门,在Mac上基于Ollama和phi3:mini的完整Agent/Subagent例子

Mac端AIGC开发环境搭建:Ollama与phi3:mini实践 AIGC(人工智能生成内容)技术正逐渐成为开发者和研究者的关注焦点,其核心在于利用大模型实现内容生成、文本处理等任务。Ollama作为轻量级大模型运行框架,结合高效模型如phi3:mini,能够显著降低开发门槛,尤其适合快速原型开发。本文通过实践案例,详细介绍了在Mac端搭建AIGC开发环境的完整流程,包括Ollama的安装与配置、phi3:mini模型的下载与使用,以及Agent/Subagent架构的设计与实现。这种组合不仅降低了硬件需求(16GB内存即可流畅运行),还通过任务分解和优化提升了系统性能, 阅读详情

我来为你设计一个在Mac上基于Ollama和phi3:mini的完整Agent/Subagent例子。这个例子会模拟一个简单的“任务分解与执行”工作流,让你直观感受多智能体协作。

🎯 示例场景:智能任务处理器

我们将创建一个主Agent,它接收用户复杂任务,然后协调两个Subagent:

  • 分解专家Subagent:专门拆分复杂任务为具体步骤
  • 执行专家Subagent:专门执行具体步骤并报告结果

📁 项目结构

phi3_agent_demo/
├── main.py              # 主程序
├── agents.py           # Agent类定义
├── requirements.txt    # 依赖包
└── README.md          # 说明文档

1. 首先安装必要依赖

# 创建项目目录
mkdir phi3_agent_demo && cd phi3_agent_demo

# 创建requirements.txt
echo "requests>=2.31.0
python-dotenv>=1.0.0" > requirements.txt

# 安装依赖
pip install -r requirements.txt

2. 创建Agent核心代码

agents.py - 定义Agent基类和具体Agent

import requests
import json
import time
from typing import Dict, List, Any, Optional

class BaseAgent:
    """Agent基类,封装与Ollama的通信"""
    
    def __init__(self, name: str, model: str = "phi3:mini", system_prompt: str = ""):
        self.name = name
        self.model = model
        self.system_prompt = system_prompt
        self.ollama_url = "http://localhost:11434/api/generate"
        
    def query_llm(self, prompt: str, max_tokens: int = 500) -> str:
        """向Ollama发送查询"""
        payload = {
            "model": self.model,
            "prompt": f"{self.system_prompt}\n\n用户指令: {prompt}",
            "stream": False,
            "options": {
                "temperature": 0.3,
                "num_predict": max_tokens
            }
        }
        
        try:
            response = requests.post(self.ollama_url, json=payload, timeout=30)
            response.raise_for_status()
            result = response.json()
            return result.get("response", "").strip()
        except requests.exceptions.RequestException as e:
            return f"错误: 无法连接Ollama服务 - {str(e)}"
    
    def process(self, input_data: Any) -> Any:
        """处理输入,子类需要重写"""
        raise NotImplementedError("子类必须实现process方法")

class TaskDecomposerAgent(BaseAgent):
    """任务分解专家 - Subagent 1: 专门拆分复杂任务"""
    
    def __init__(self):
        system_prompt = """你是一个专业的任务分解专家。你的工作是将用户提出的复杂任务拆解为具体的、可执行的步骤。
        
        输出格式要求:
        1. 始终以JSON格式输出,包含一个"steps"数组
        2. 每个步骤是一个对象,包含"id"、"description"和"type"字段
        3. type可以是:research(研究)、calculate(计算)、write(写作)、review(审查)等
        
        示例:
        {"steps": [
            {"id": 1, "description": "搜索相关主题的最新信息", "type": "research"},
            {"id": 2, "description": "计算关键数据指标", "type": "calculate"}
        ]}
        
        现在开始处理用户任务:"""
        
        super().__init__("任务分解专家", system_prompt=system_prompt)
    
    def process(self, complex_task: str) -> List[Dict[str, Any]]:
        print(f"🔍 [{self.name}] 正在分析任务: {complex_task}")
        
        prompt = f"请将以下任务分解为具体步骤:\n\n任务: {complex_task}"
        response = self.query_llm(prompt)
        
        # 尝试解析JSON响应
        try:
            # 提取JSON部分(模型有时会在JSON前后添加文本)
            import re
            json_match = re.search(r'\{.*\}', response, re.DOTALL)
            if json_match:
                json_str = json_match.group()
                result = json.loads(json_str)
                steps = result.get("steps", [])
                
                print(f"✅ [{self.name}] 分解完成,共{len(steps)}个步骤")
                for step in steps:
                    print(f"   - 步骤{step['id']}: {step['description']} ({step['type']})")
                
                return steps
            else:
                # 如果无法解析为JSON,创建默认步骤
                return [{"id": 1, "description": response[:100], "type": "general"}]
                
        except json.JSONDecodeError:
            print(f"⚠️  [{self.name}] JSON解析失败,使用原始响应")
            return [{"id": 1, "description": response[:100], "type": "general"}]

class TaskExecutorAgent(BaseAgent):
    """任务执行专家 - Subagent 2: 专门执行具体任务"""
    
    def __init__(self, expertise: str = "general"):
        self.expertise = expertise
        system_prompt = f"""你是一个专业的{expertise}任务执行专家。你的工作是具体执行分配给你的任务步骤。
        
        你需要:
        1. 理解任务要求
        2. 执行具体操作(思考、计算、分析等)
        3. 提供清晰的执行结果
        
        输出格式:
        {{"status": "success|partial|failed", "result": "具体执行结果", "details": "详细说明"}}
        
        现在请执行以下任务:"""
        
        super().__init__(f"{expertise}执行专家", system_prompt=system_prompt)
    
    def process(self, task_step: Dict[str, Any]) -> Dict[str, Any]:
        step_id = task_step.get("id", 0)
        description = task_step.get("description", "")
        step_type = task_step.get("type", "general")
        
        print(f"🛠️  [{self.name}] 正在执行步骤{step_id}: {description}")
        
        prompt = f"任务类型: {step_type}\n任务描述: {description}\n\n请执行此任务并报告结果:"
        response = self.query_llm(prompt)
        
        # 尝试解析响应中的JSON
        try:
            import re
            json_match = re.search(r'\{.*\}', response, re.DOTALL)
            if json_match:
                result = json.loads(json_match.group())
            else:
                result = {"status": "success", "result": response, "details": "模型返回了非JSON格式"}
        except:
            result = {"status": "partial", "result": response[:200], "details": "响应解析异常"}
        
        print(f"✅ [{self.name}] 步骤{step_id}完成,状态: {result.get('status', 'unknown')}")
        return result

class OrchestratorAgent(BaseAgent):
    """主协调Agent - 负责管理整个工作流"""
    
    def __init__(self):
        system_prompt = """你是智能任务协调员,负责协调多个专家完成复杂任务。
        
        你的工作流程:
        1. 接收用户的复杂任务
        2. 调用任务分解专家拆解任务
        3. 为每个步骤分配合适的执行专家
        4. 汇总所有结果并生成最终报告
        
        现在开始协调:"""
        
        super().__init__("主协调员", system_prompt=system_prompt)
        
        # 初始化Subagents
        self.decomposer = TaskDecomposerAgent()
        
        # 根据任务类型创建不同的执行专家
        self.executors = {
            "research": TaskExecutorAgent("研究"),
            "calculate": TaskExecutorAgent("计算"),
            "write": TaskExecutorAgent("写作"),
            "review": TaskExecutorAgent("审查"),
            "general": TaskExecutorAgent("综合")
        }
    
    def process(self, user_task: str) -> Dict[str, Any]:
        print(f"\n🎯 [{self.name}] 接收任务: {user_task}")
        print("=" * 50)
        
        # 阶段1: 任务分解
        print("📋 阶段1: 任务分解")
        steps = self.decomposer.process(user_task)
        
        if not steps:
            return {"status": "failed", "error": "任务分解失败"}
        
        # 阶段2: 并行执行各步骤
        print(f"\n🚀 阶段2: 执行{len(steps)}个步骤")
        results = []
        
        for step in steps:
            step_type = step.get("type", "general")
            executor = self.executors.get(step_type, self.executors["general"])
            
            # 执行当前步骤
            step_result = executor.process(step)
            step_result["step_info"] = step
            results.append(step_result)
            
            # 添加小延迟,避免请求过快
            time.sleep(1)
        
        # 阶段3: 汇总结果
        print(f"\n📊 阶段3: 汇总{len(results)}个步骤的结果")
        final_result = self._summarize_results(user_task, results)
        
        return final_result
    
    def _summarize_results(self, original_task: str, step_results: List[Dict]) -> Dict[str, Any]:
        """汇总所有步骤的结果"""
        prompt = f"""原始任务: {original_task}

已完成的所有步骤结果:
{json.dumps(step_results, indent=2, ensure_ascii=False)}

请基于以上执行结果,生成最终的任务完成报告。
报告应包含:总体完成情况、关键发现、下一步建议。

请用JSON格式输出:
{{"overall_status": "completed|partial|failed", "summary": "总体摘要", "key_findings": ["发现1", "发现2"], "next_steps": ["建议1", "建议2"]}}"""
        
        response = self.query_llm(prompt)
        
        try:
            import re
            json_match = re.search(r'\{.*\}', response, re.DOTALL)
            if json_match:
                summary = json.loads(json_match.group())
            else:
                summary = {"overall_status": "completed", "summary": response[:300]}
        except:
            summary = {"overall_status": "completed", "summary": "任务执行完成"}
        
        return {
            "original_task": original_task,
            "step_results": step_results,
            "final_summary": summary
        }

3. 主程序入口

main.py - 运行演示

#!/usr/bin/env python3
"""
基于Ollama phi3:mini的多智能体演示
确保Ollama服务已运行: ollama serve
"""

import sys
from agents import OrchestratorAgent
import json

def check_ollama():
    """检查Ollama服务是否运行"""
    import requests
    try:
        response = requests.get("http://localhost:11434/api/tags", timeout=5)
        return response.status_code == 200
    except:
        return False

def main():
    print("=" * 60)
    print("🤖 基于Ollama phi3:mini的多智能体演示")
    print("=" * 60)
    
    # 检查Ollama服务
    print("🔍 检查Ollama服务...")
    if not check_ollama():
        print("❌ 错误: Ollama服务未运行!")
        print("请先启动Ollama服务:")
        print("  1. 打开新终端窗口")
        print("  2. 运行: ollama serve")
        print("  3. 保持终端打开,然后重新运行此程序")
        return
    
    print("✅ Ollama服务正常")
    
    # 创建主协调Agent
    print("\n🚀 初始化多智能体系统...")
    orchestrator = OrchestratorAgent()
    
    # 示例任务列表
    sample_tasks = [
        "帮我规划一个周末杭州旅行行程,包括景点、美食和预算",
        "分析苹果公司2024年第一季度的财务表现和未来展望",
        "写一篇关于人工智能在教育领域应用的短文",
        "制定一个学习Python编程的3个月计划"
    ]
    
    print("\n📝 示例任务:")
    for i, task in enumerate(sample_tasks, 1):
        print(f"  {i}. {task[:50]}...")
    
    while True:
        print("\n" + "=" * 50)
        print("请选择:")
        print("  1-4: 运行示例任务")
        print("  5: 输入自定义任务")
        print("  0: 退出")
        
        choice = input("\n请选择 (0-5): ").strip()
        
        if choice == "0":
            print("👋 再见!")
            break
        elif choice in ["1", "2", "3", "4"]:
            task_index = int(choice) - 1
            user_task = sample_tasks[task_index]
        elif choice == "5":
            user_task = input("请输入你的任务: ").strip()
            if not user_task:
                print("⚠️  任务不能为空")
                continue
        else:
            print("⚠️  无效选择")
            continue
        
        print(f"\n📨 任务: {user_task}")
        print("⏳ 开始处理...")
        
        # 执行任务
        final_result = orchestrator.process(user_task)
        
        # 显示结果
        print("\n" + "=" * 50)
        print("📋 最终报告")
        print("=" * 50)
        
        summary = final_result.get("final_summary", {})
        print(f"📈 总体状态: {summary.get('overall_status', 'unknown')}")
        print(f"📝 摘要: {summary.get('summary', '')[:200]}...")
        
        if 'key_findings' in summary:
            print("\n🔑 关键发现:")
            for finding in summary['key_findings']:
                print(f"  • {finding}")
        
        # 保存详细结果到文件
        output_file = f"task_result_{int(time.time())}.json"
        with open(output_file, 'w', encoding='utf-8') as f:
            json.dump(final_result, f, indent=2, ensure_ascii=False)
        
        print(f"\n💾 详细结果已保存到: {output_file}")

if __name__ == "__main__":
    import time
    main()

4. 创建配置文件

.env (可选,用于未来扩展)

OLLAMA_HOST=http://localhost:11434
DEFAULT_MODEL=phi3:mini
MAX_TOKENS=1000

5. 运行演示

# 1. 确保Ollama服务运行(在新终端中)
ollama serve

# 2. 确保phi3:mini模型已下载
ollama list
# 如果没看到phi3:mini,运行: ollama pull phi3:mini

# 3. 在另一个终端中,运行演示程序
cd phi3_agent_demo
python main.py

6. 示例运行输出

当你运行程序并选择任务时,会看到类似输出:

🎯 [主协调员] 接收任务: 帮我规划一个周末杭州旅行行程
📋 阶段1: 任务分解
🔍 [任务分解专家] 正在分析任务...
✅ [任务分解专家] 分解完成,共4个步骤
   - 步骤1: 搜索杭州主要景点 (research)
   - 步骤2: 计算交通和住宿预算 (calculate)
   - 步骤3: 撰写详细行程安排 (write)
   - 步骤4: 审查并优化计划 (review)

🚀 阶段2: 执行4个步骤
🛠️  [研究执行专家] 正在执行步骤1...
✅ [研究执行专家] 步骤1完成,状态: success
🛠️  [计算执行专家] 正在执行步骤2...
...

📊 阶段3: 汇总结果
📋 最终报告
总体状态: completed
摘要: 已成功规划杭州周末行程...

🔧 故障排查

  1. Ollama连接失败:

    # 检查Ollama是否运行
    curl http://localhost:11434/api/tags
    
    # 如果没有响应,重启Ollama
    pkill ollama
    ollama serve &
    
  2. 模型未找到:

    # 列出已安装模型
    ollama list
    
    # 如果phi3:mini不存在,下载它
    ollama pull phi3:mini
    
  3. 响应速度慢:

    • phi3:mini在CPU上运行可能较慢,这是正常的
    • 可以尝试减小MAX_TOKENS或增加步骤间延迟

🎯 这个例子展示了什么?

  1. 角色分工:主Agent协调,Subagent专业执行
  2. 工作流管理:分解→执行→汇总的标准流程
  3. 上下文隔离:每个Agent有自己的系统提示和专长
  4. 错误处理:基本的异常处理和降级方案
  5. 结果整合:最终报告生成和持久化

你可以基于这个框架扩展更多Subagent,添加工具调用(如网络搜索、文件操作),或实现更复杂的协作逻辑。这是理解多智能体系统的绝佳起点!

本地部署AI Agent:Ollama+Qwen3实战指南 AI Agent 是让大模型具备工具调用与自主决策能力的关键抽象层,其核心原理在于将任务规划、工具选择与结果整合从提示词中解耦为可编程逻辑。技术价值体现在数据可控、延迟确定、系统可嵌入三大维度,广泛应用于工业诊断、法律合规、游戏运维等对隐私与实时性敏感的场景。本文聚焦本地化落地路径,基于 Ollama 运行时与 Qwen3 中文大模型组合,详解模型拉取、量化适配、Agent 调度及企业微信集成等工程关键点,解决‘能跑通’到‘真可用’的最后一公里。 阅读详情

相关推荐

Mac 本地跑 AI 大模型神器:OMLX,让 Mac Mini 推理速度提升 10 倍!

【摘要】Mac本地AI大模型运行速度慢的问题可通过OMLX加速工具解决。OMLX能优化模型推理、提升token生成速度10倍以上,支持16GB内存设备流畅运行9B参数模型。安装步骤包括:部署Ollama下载模型、配置OMLX服务器、对接OpenCat客户端。实测显示响应时间从1分50秒缩短至10秒,并提供KV缓存持久化、OpenAI API兼容等高级功能,是Mac本地AI的高效解决方案。

讯开技术孵化器博客 2305

Ollama王炸更新!一行命令部署HermesAgent,本地AI秒变智能助手

Ollama王炸更新!一行命令部署HermesAgent,本地AI秒变智能助手

u010359778的专栏 950

Mac mini m4本地跑大模型(ollama + deepseek + ComfyUI + Stable Diffusion | flux)

本地大模型,长期更新,可持续关注下!

偶尔写些东西,意思一下我也参与了内卷 2万+

Mac Mini M4 彻底搞定 Ollama 后台常驻:关闭终端也不怕进程被杀!

本文介绍了三种在Mac Mini M4上实现Ollama后台常驻运行的方法:1) 使用Homebrew服务一键部署;2) 通过官方Ollama App图形界面管理;3) 手动创建LaunchAgent配置文件实现深度定制。文章详细说明了每种方法的操作步骤、优缺点及验证方式,特别针对Apple Silicon芯片优化配置,解决了终端关闭后进程被杀的问题,确保本地大模型(qwen2.5)7×24小时稳定运行。还提供了常见问题解决方案和性能优化建议,帮助用户将Mac Mini M4打造成高效的低功耗本地AI服务器

旅程的博客 3482

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

Mac Mini M4 配备了苹果自家研发的 M1/M2/M4 芯片,具有强大的处理能力,能够支持本地跑一些大模型,尤其是在使用如 Ollama、Llama、ComfyUI 和 Stable Diffusion 这类 AI 相关工具时,性能表现非常好。在 Mac Mini M4 上本地运行大模型是一项具有挑战性的任务,但通过合理的资源管理和配置,可以使得这些强大的工具和框架运行流畅。在 ComfyUI 中,选择你想要的模型(例如 Stable Diffusion),输入文本提示,点击“生成”按钮即可。

小蜗牛的珍贵百宝箱 1万+

Mac mini 搭建本地 AI 对话系统:Ollama + Open WebUI 实战指南

本地大模型(LLM)是当前AI落地的关键技术路径,其核心在于无需联网、数据私有、低延迟响应与硬件可控性。Ollama作为轻量级本地模型运行时,通过Metal加速在Apple Silicon设备上实现高效推理;Open WebUI则提供开箱即用的图形化对话界面,支持局域网多端访问。该组合显著降低AI使用门槛,适用于家庭智能助手、内容创作协同时、教育辅导等隐私敏感场景。本文聚焦Mac mini这一高性价比静音服务器平台,详解Ollama模型部署、Open WebUI离线配置及Metal兼容性优化,助力用户构建真

weixin_29483277的博客 270

大模型本地部署教程丨手把手带你在Mac本地部署运行AI大模型(附教程)

本文将详细介绍如何使用Ollama,一个开源项目,在Mac上本地运行大型模型(Win同理)。通过遵循以下步骤,即使是配备了几年前硬件的电脑,也能够顺利完成部署和运行。

DEVELOPERAA的博客 1413

PyTorch实战:3D U-Net医学图像分割从零搭建(附完整代码)

本文详细介绍了如何使用PyTorch从零搭建3D U-Net模型进行医学图像分割,涵盖三维卷积实现、模块化架构设计、医学图像专属优化策略及完整训练流程。通过实战代码演示,帮助开发者掌握UNet-3D在CT、MRI等三维医学图像分割中的应用,提升肝脏肿瘤分割、肺结节检测等任务的准确性。

weixin_29061997的博客 330

这届网友太狠了:Clawdbot爆火,狂囤40台Mac mini来跑 自动化 agent

由于这款应用可以访问整台电脑上的软件和系统资源,因此更稳妥的做法并不是把它直接跑在自己的主力工作电脑上,而是部署在一台独立设备上,或者至少进行隔离运行,以降低潜在的安全风险。不过也有网友表示不必为运行 Clawdbot 花 600 美元买 Mac mini,在一台很便宜的服务器上也能运行,他自己就跑通了,花大钱买 Mac mini 并不划算。Memory(记忆系统):一个持久化的、基于文件的存储系统,用真实文件的形式保存你的对话、偏好和上下文,你可以直接查看,也可以把它接入自己的工作流程。

具身机器人和通用AI 544

大陆毫米波雷达ARS408-21xx实战:从零搭建ROS环境下的目标检测与可视化

本文详细介绍了大陆毫米波雷达ARS408-21xx在ROS环境下的实战部署全流程。从硬件连接、CAN总线配置,到ROS驱动节点开发、CAN报文解析,再到RViz三维可视化实现,提供了完整的代码示例与调试技巧,帮助开发者快速搭建毫米波雷达目标检测与可视化系统。

open4的博客 636

Nifi SNI 问题解决方案

Nifi 在配置 SSL 时,如果没有正确设置主机名(SNI),就会导致。为了解决这个问题,我们需要重新配置 Nifi 的 SSL 证书,并确保所有相关配置项(如服务器地址、证书路径和密码等)正确无误。以下是一个详细的解决步骤,以帮助你正确配置 Nifi 并解决 SNI 错误。文件中的配置项(如服务器地址、端口和证书路径),以及正确设置用户凭证。通过这些配置,你可以确保 Nifi 在支持 HTTPS 的同时,正确处理 SSL/TLS 的 SNI 问题。文件,配置服务器地址、端口以及证书路径和密码。

m0_58786911的博客 2299

A1.本地大模型Ollama 3.2部署(For Mini/M系列)

Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(Large Language Models, LLMs)而设计。它提供了一个平台,使得用户能够轻松管理和运行这些复杂的模型,而无需深入的技术知识。帮助用户利用大型语言模型的力量来增强各种应用程序。

孤独的狼 1497

windows下宝塔安装教程

windows下宝塔安装教程 目录宝塔是什么?宝塔安装流程1.下载2.配置3.登录4.安装的环境套件小结 宝塔是什么? 宝塔是管理服务器的免费的软件,宝塔上面可以进行对你的服务器批量进行管理,对于运维人员来说还是必不可少的一个软件,值得使用。 宝塔安装流程 1.下载 链接: https://download.bt.cn/win/panel/BtSoft.zip 下载后安装买最好自定义目录,方便找 2.配置 下载完成后会出现这个页面,对着页面进行配置 点击默认密码复制进来,这里注意一点就是一定要查看

你在看屏幕的同时,屏幕也在注视着你 4425

M2 Mac mini跑Llama3

在4-19左右,Meta 宣布正式推出下一代开源大语言模型Llama 3;共包括 80 亿和 700 亿参数两种版本,号称 “是 Llama 2 的重大飞跃”,并为这些规模的 LLM 确立了新的标准。实际上笔者早就体验过,只不过自己电脑没什么显卡(核显),所以一直没跑llama,但是最近听说m2芯片可以运行,就体验了一下。看图表8B的数据可以在本地运行,70B就不用想了。试了一下真的可行。

fenglllle的博客 4147

全面解读AI Infra:架构、生态与未来趋势

文章摘要 大模型时代下,AI基础设施(AI Infra)成为关键技术基建,涵盖从数据准备到模型服务的全栈技术体系。文章系统解构了AI Infra的四层架构(硬件资源层、资源管理调度层、开发框架层、平台工具层),并分析了全球AI Infra生态图谱,包括云计算巨头、芯片厂商等全栈服务商,以及中国特色的多元竞合格局。通过对比Data Infra与AI Infra的核心差异,指出AI Infra更关注智能应用的规模化与自动化。文章还探讨了从传统数据设施向AI基础设施的转型路径,强调自主可控、软硬协同等发展趋势,为

技术引领业务创新 612

VTK GPU 加速渲染技术

/ 创建颜色工具// 创建立方体数据// 创建OpenGL映射器(注意使用vtkOpenGLPolyDataMapper而不是常规的vtkPolyDataMapper)// 启用VBO(顶点缓冲对象)// 声明几何体是静态的以获得最佳性能// 创建actor// 创建渲染器、渲染窗口和交互器renderWindow->SetWindowName("VTK自定义着色器示例");// 添加actor到渲染器。

深之JohnChen的专栏 1242

升级Ollama!MiniCPM-V2_6图像识别模型上线,适用于手机上单张图片、多张图片和视频的 GPT-4V 级 MLLM

Ollama 发布了一个新版本,并且带来了三个很酷的新功能。首先,我们现在支持 MiniCPM 视觉模型,我会在不同的视频中介绍这三个功能,但对我来说,最吸引人的无疑是这个 MiniCPM 视觉模型。如果你还不了解 MiniCPM 视觉模型,可以告诉你,它是一个紧凑但非常强大的模型,如果你访问 Hugging Face,他们提供了很多关于这个模型的详细信息,你可以浏览并查看相关内容。比如,MiniCPM-V 2.6 是 MiniCPM-V 系列中最新、功能最强大的模型。

m0_56255097的博客 8444

OpenCV实例(八)车牌字符识别技术(三)汉字识别

相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面:(1)字符笔画因切分误差导致非笔画或笔画流失。(2)汽车牌照被污染导致字符上出现污垢。(3)采集所得车辆图像分辨率低导致多笔画的汉字较难分辨。(4)车辆图像采集时所受光照影响的差异导致笔画较淡。综合汉字识别时的这些难点来看,很难被直接提取的是字符的局部特征。笔画作为最重要的特征而仅存在于汉字中,这由先验知识可知。一旦捺、横、竖、撇这些笔画特征被提取到,对于汉字字符识别的工作就完成了许多。

小幽余生不加糖 1650

【最后203篇系列】023 MacMini的ollama服务

以deepseek-r1-14b为例,执行效率上,m4入门级芯片的算力大约为4060ti一半,比我预想的要差一些。mac 毕竟是一台完整的电脑 ,还能执行多种功能,能耗低,无需额外散热,没噪音,体积小。对大模型来说,关键是UMA,16G相对还是便宜的,再高就要贵很多。我问了豆包,最初它的回答正确了99%,可惜大小写搞错了。我估计它的资料是更早一些的,后来的ollama变了。在mac上用ollama跑大模型也是最方便的,安装一下软件,pull一下就好了。反正之后又摸索了好一会,大约半小时到一小时,整明白了。

yukai08008的博客 678

【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】

GIC-v3中,引入了支持2种安全状态(secure state),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。

CodingCos的博客 2116

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

在Mac mini上实现本地话部署AI和知识库

在Macmini上实现本地话部署AI和知识库硬件要求大模型AI,也叫LLM,需要硬件支持,常见的方式有2种:一种是采用英伟达之类支持CUDA库的GPU芯片或者专用AI芯片;第二种是采用苹果M系列芯片架构的支持统一内存架构的硬件;本文主要讲基于苹果M系列的方式,采用的内存建议16M,8M内存也能支持,但支持模型会比较少;除此之外,即使普通的电脑,如果你的内存够大,CPU够快,也是可以运行一些小的模型的,只是速度上会比较慢,CPU占用比较高,具体情况大家可以实际体验一下,例如我用一台T460,Inteli5

Johnny_nass_hu的专栏 5937

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

只需三步,手把手带你在本地部署运行大模型

在当前的技术环境下,大型语言模型(LLMs)已经成为人工智能领域的一个重要里程碑。

AAI666666的博客 1万+

Mac mini M4本地AI部署实战:Ollama模型量化与统一内存榨干指南

本地AI部署正从云端依赖走向边缘算力,其核心在于理解统一内存架构与模型量化原理。Apple Silicon的M4芯片采用CPU/GPU共享内存设计,让大模型可直接驻留内存,规避传统显卡显存瓶颈。配合Ollama等推理引擎,通过Q4量化可将7B模型压缩至4GB左右,在千元级主机上实现每秒30 token的高效生成,从代码助手到语音转写、知识库等多场景皆可离线运行。随着本地推理生态成熟,Mac mini M4成为兼顾成本、功耗与隐私的入门甜点,适合开发者与重度AI用户实现算力自主,将订阅依赖降至最低。

weixin_29038345的博客 385

Mac mini + Ollama:轻量级本地AI服务器搭建实战指南

大模型推理正从数据中心走向桌面端,本地AI服务器的核心诉求已转向低功耗、静音稳定与即开即用。统一内存架构(UMA)和Metal加速使Apple Silicon成为中等规模模型(如7B级LLM)推理的理想平台,而Ollama作为专为macOS优化的模型运行时环境,通过分层镜像、资源隔离与REST API封装,大幅降低部署门槛。它不依赖CUDA,却能高效调度CPU/GPU/ANE协同计算,在16–128GB内存范围内支撑Qwen2-7B、Llama3-8B等主流量化模型的日常交互式应用,广泛适用于知识管理、代码

weixin_32487557的博客 249

知网AIGC检测原理详解:让论文被标红的3个统计特征(附实测数据)

知网AIGC检测不看关键词,而是分析句长方差、连接词密度与信息密度均匀度三大篇章级特征。即使手写,若文本风格工整、节奏均匀,仍可能被标红。同义词替换等表面修改无效,唯有改变生成方式——如理解后重述、模仿真实作者行文习惯——才能有效降低AI率。实测可将维普风险值从64%降至8%。建议初稿即自测,选择真正有效的降AI服务。

柳落青 231

动漫影视 AIGC 实验室建设:部署选型、工作流与验收

动漫影视 AIGC 实验室选型时,最容易测的是单个工具能不能出图,最容易漏测的是一堂课能不能跑完:多个小组同时提交视频生成任务,会排多久?生成失败后,能否只补做一个镜头?学生换一台电脑,还能打开原来的剪辑工程吗?这些问题分别对应算力调度、任务管理和素材交付。可以先用一段 30~60 秒的教学短片做试点,跑通分镜、素材生成、配音、剪辑和导出,再根据实际瓶颈决定如何部署。以下是一套可用于试点的设计示例。

manyingAi的博客 327
上一篇: AIGC入门,为什么你的大模型应用这么慢又贵?RAG架构的降本增效革命
下一篇: 重新认识JVM的内存分布(JDK11 + G1垃圾收集器)
明月(Alioo)
博客等级 码龄18年 267粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月(Alioo)

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值