minimax h3模型提示词语法
附上官方的提示词指南:https://docs.comfy.org/zh/tutorials/video/minimax/minimax-h3-prompt-guide
附上官方的提示词指南:https://docs.comfy.org/zh/tutorials/video/minimax/minimax-h3-prompt-guide
abstract,不能实例化。用来统一接口规范。interface 不一样,抽象类里面可以写已经实现好的普通方法、属性,子类直接复用。对比一句话:
interface:全部都是契约,不能写实现,一个类可以多实现abstract class:一半契约(abstract方法)+一半现成代码,只能单继承
abstractabstract,没有函数体,以分号结尾,不能有 {}extends 抽象类,必须全部实现父类所有抽象方法new<?php
abstract class CarrierBase
{
// 抽象方法:子类必须实现
abstract public function sendOrder(array $orderData): bool;
abstract public function cancelOrder(int $orderId): bool;
// 已经实现的公共方法,子类直接继承复用
protected function log(string $msg): void
{
echo date('Y-m-d H:i:s') . ' ' . $msg . PHP_EOL;
}
}
// 子类实现抽象类
class SelfCourierCarrier extends CarrierBase
{
public function sendOrder(array $orderData): bool
{
$this->log('自有骑手接单:' . $orderData['id']);
return true;
}
public function cancelOrder(int $orderId): bool
{
$this->log('自有骑手取消订单:' . $orderId);
return true;
}
}
// $base = new CarrierBase(); // 报错!抽象类不能实例化
$carrier = new SelfCourierCarrier();
$carrier->sendOrder(['id' => 1001]);你现在是 CarrierInterface 接口;如果很多运力都共用一套日志、组装请求的逻辑,就适合改成抽象基类:
abstract class AbstractCarrier implements CarrierInterface
{
// 公共通用能力,所有运力复用
protected function buildOrderParam(array $raw): array
{
return [
'order_no' => $raw['order_sn'],
'addr_from' => $raw['from_address'],
'addr_to' => $raw['to_address'],
];
}
}
class SelfCourierCarrier extends AbstractCarrier
{
public function dispatch(array $order): bool
{
$param = $this->buildOrderParam($order);
// 自有骑手分发逻辑
return true;
}
}
class ThirdPartyCarrier extends AbstractCarrier
{
public function dispatch(array $order): bool
{
$param = $this->buildOrderParam($order);
// 调用UU/闪送接口
return true;
}
}abstract public func(); ✅,带大括号 ❌
你这段是 graph TD,TD = Top Down,从上到下的流程图
graph TD
起点 --> 终点 // 箭头连线
节点ID["显示文字"] // 方框节点,最常用
节点ID(圆角文字) // 圆角框
节点ID{判断} // 菱形判断框graph TD:从上往下graph LR:从左往右(LR=Left Right,后端架构图最常用)
graph TD
A["跑腿员端 API (api/errand)"] --> S1["ErrandCourierService"]
A --> S2["ErrandOrderService"]
B["管理平台 API (admin/errand)"] --> S1
B --> S3["ErrandCarrierService"]
C["用户端下单 (api ErrandController)"] --> S2
S3 --> M["CarrierManager (运力解析)"]
M --> I["CarrierInterface"]
I --> R1["SelfCourierCarrier (自有骑手)"]
I --> R2["ThirdPartyCarrier (UU/闪送 预留)"]
S2 --> L["ErrandOrderStatusLog / ErrandTimeNode / ErrandWorkRecord"]A、S1、S2:是节点唯一ID,随便起名,只用来内部连线,不展示["xxx"]:方括号,矩形框,显示里面的文字-->:单向箭头,表示依赖/调用关系(A 调用 S1)graph TD(竖向)或者 graph LR(横向,推荐画架构)ID["展示文本"],ID不能重复ID1 --> ID2graph LR
A["跑腿员端 API (api/errand)"] --> S1["ErrandCourierService"]
A --> S2["ErrandOrderService"]
B["管理平台 API (admin/errand)"] --> S1
B --> S3["ErrandCarrierService"]
C["用户端下单 (api ErrandController)"] --> S2
S3 --> M["CarrierManager (运力解析)"]
M --> I["CarrierInterface"]
I --> R1["SelfCourierCarrier (自有骑手)"]
I --> R2["ThirdPartyCarrier (UU/闪送 预留)"]
S2 --> L["ErrandOrderStatusLog / ErrandTimeNode / ErrandWorkRecord"]VSCode 装插件:Markdown Preview Mermaid Support,打开md直接看;
飞书/语雀文档,直接粘贴这段代码,选择Mermaid代码块即可渲染。
-.->标注文字箭头:A -- 调用 --> B
graph LR
A["服务A"] -- 同步调用 --> B["服务B"]
B -.-> C["异步回调"]composer create-project hyperf/hyperf-skeleton hyperf-demo学习目标:实现服务提供方注册、消费方远程调用,基于注解开发
安装组件
composer require hyperf/json-rpc hyperf/rpc-server hyperf/rpc-clientUserServiceInterface,定义方法@RpcService 注解发布服务,开启注册中心配置consumers,依赖注入接口直接调用学习目标:基于proto文件生成代码,搭建gRPC服务端与客户端
.proto 协议文件(定义服务、入参、出参)学习目标:服务自动注册、自动发现,不用硬写IP端口
composer require hyperf/service-register二选一练习(优先Nacos,国内主流)
publishTo="nacos",自动把服务注册到Nacos学习目标:多实例服务自动轮询/随机调用,实现流量分发
hyperf/load-balancer(框架内置,无需额外安装)学习目标:服务调用失败时自动熔断,保护下游服务,避免连环崩溃
composer require hyperf/circuit-breaker@CircuitBreaker学习目标:全链路追踪请求,查看整条调用链耗时、调用节点,排查慢接口
composer require hyperf/tracer jaeger-client协程常驻内存,必须使用连接池,否则会爆连接、内存泄漏
hyperf/database(框架自带)hyperf/rediscomposer require hyperf/amqp并发请求下,连接数量稳定在配置区间,不会无限暴涨。
hyperf/crontab(内置)@CrontabAbstractProcesscomposer require hyperf/websocket-serverContext::set() / Context::get() 存储当前请求唯一数据(trace_id、用户ID)用到:JSON-RPC + Nacos注册发现 + 负载均衡 + 熔断降级 + 链路追踪 + MySQL/Redis连接池
用到:WebSocket长连接 + 秒级定时任务 + 自定义进程消费队列 + 分布式锁 + 消息队列RabbitMQ
用到:HTTP服务 + 路由转发 + RPC调用下游微服务 + 全局AOP鉴权 + 限流熔断
第1天:环境搭建 + DI/AOP + Context协程上下文 + 连接池(MySQL/Redis)
第2天:JSON-RPC + gRPC + Nacos服务注册发现 + 负载均衡
第3天:熔断降级 + 分布式链路追踪Jaeger
第4天:RabbitMQ消息队列 + 自定义进程 + 秒级定时任务Crontab
第5天:WebSocket长连接 + 分布式IM消息推送
第6~7天:整合为小游戏后端 + 微服务集群 + 打包容器部署
B站搜索标题:
很多短视频只背标准答案,面试的时候面试官会顺着答案继续深挖,优先看带现场故障思路、实操演示的视频,不要只背文字。