Skill: skydream9527-ctrl/minimax-text (version 1.0.0)

--- name: minimax-text description: MiniMax 文本生成模型，支持 M2.7/M2.5/M2.1/M2 等大语言模型。使用 MINIMAX_API_KEY 环境变量。 metadata: {"openclaw":{"emoji":"💬","requires":{"bins":["python3"]}}} --- # MiniMax 文本生成 使用 MiniMax 大语言模型进行文本生成、对话、代码编写等任务。 ## 支持的模型 | 模型 | 说明 | |------|------| | `MiniMax-M2.7` | 旗舰模型，2048K context，支持多语言编程和复杂推理 | | `MiniMax-M2.5` | 高性能模型，2048K context，优化代码生成 | | `MiniMax-M2.1` | 强力多语言编程能力 | | `MiniMax-M2` | Agent 能力，高级推理 | | `MiniMax-M2.5-highspeed` | M2.5 高速版，~100 tps | ## 前置要求 - Python 3 - `pip3 install requests` - 设置环境变量 `MINIMAX_API_KEY` ```bash export MINIMAX_API_KEY="你的API Key" ``` ## 使用方法 ### 直接调用 ```bash python3 {baseDir}/scripts/text.py --model MiniMax-M2.7 --prompt "你好，介绍一下自己" ``` ### 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | `--model` | 模型名 | `MiniMax-M2.7` | | `--prompt` | 输入提示 | - | | `--system` | 系统提示 | 可选 | | `--messages` | JSON 格式的历史消息 | 可选 | | `--think` | 启用思考模型（0/1）| 0 | | `--output` | 输出文件 | stdout | ### 示例 ```bash # 基本对话 python3 {baseDir}/scripts/text.py --model MiniMax-M2.7 --prompt "用Python写一个快速排序" # 带系统提示 python3 {baseDir}/scripts/text.py --model MiniMax-M2.5 --system "你是一个专业的Python程序员" --prompt "解释一下什么是装饰器" ```

path: _meta.json
content: ownerId: gyh
slug: minimax-text
version: 1.0.0
publishedAt: 1744394400000
name: minimax-text
description: MiniMax 文本生成（LLM）技能，支持 M2.7/M2.5/M2.1/M2 系列模型。

path: scripts/text.py
content: #!/usr/bin/env python3
"""
MiniMax 文本生成脚本
支持 MiniMax-M2.7, MiniMax-M2.5, MiniMax-M2.1, MiniMax-M2 等模型
"""

import os
import sys
import json
import argparse
import requests

[REDACTED_SECRET]"MINIMAX_API_KEY")
if not [REDACTED_SECRET]"Error: MINIMAX_API_KEY environment variable not set")
    print("Please set it with: export MINIMAX_API_KEY=\"your-api-key\"")
    sys.exit(1)

HEADERS = {"Authorization": f"Bearer {API_KEY}"}
API_HOST = "https://api.minimaxi.com"


def chat(model: str, prompt: str, system: str = None, messages: list = None,
         think: int = 0, temperature: float = 0.7, max_tokens: int = 8192) -> str:
    """调用 MiniMax 文本生成 API"""
    url = f"{API_HOST}/v1/text/chatcompletion_v2"

    if messages is not None:
        msgs = messages
    else:
        msgs = []
        if system:
            msgs.append({"role": "system", "content": system})
        msgs.append({"role": "user", "content": prompt})

    payload = {
        "model": model,
        "messages": msgs,
        "temperature": temperature,
        "max_tokens": max_tokens,
    }
    if think:
        payload["thinking"] = {"type": "enabled", "budget_tokens": 18000}

    resp = requests.post(url, headers=HEADERS, json=payload, timeout=120)
    resp.raise_for_status()
    data = resp.json()

    if data.get("base_resp", {}).get("status_code") != 0:
        raise Exception(f"API Error: {data['base_resp']['status_msg']}")

    choices = data.get("choices", [])
    if choices:
        return choices[0].get("messages", [{}])[0].get("content", "")
    return ""


def main():
    parser = argparse.ArgumentParser(description="MiniMax 文本生成")
    parser.add_argument("--model", default="MiniMax-M2.7",
                        help="模型名称: MiniMax-M2.7, MiniMax-M2.5, MiniMax-M2.1, MiniMax-M2, MiniMax-M2.5-highspeed")
    parser.add_argument("--prompt", required=True, help="用户输入提示")
    parser.add_argument("--system", help="系统提示词")
    parser.add_argument("--messages", help="JSON 格式历史消息列表")
    parser.add_argument("--think", type=int, default=0, help="启用思考模型 (0/1)")
    parser.add_argument("--temperature", type=float, default=0.7, help="温度参数")
    parser.add_argument("--max-tokens", type=int, default=8192, help="最大输出 token 数")
    parser.add_argument("--output", help="输出文件路径（默认打印到 stdout）")

    args = parser.parse_args()

    msgs = None
    if args.messages:
        msgs = json.loads(args.messages)

    result = chat(
        model=args.model,
        prompt=args.prompt,
        system=args.system,
        messages=msgs,
        think=args.think,
        temperature=args.temperature,
        max_tokens=args.max_tokens
    )

    if args.output:
        with open(args.output, "w", encoding="utf-8") as f:
            f.write(result)
        print(f"✅ 结果已保存至 {args.output}")
    else:
        print(result)


if __name__ == "__main__":
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector:  ()