mcpField
M
modelslab-chat-generation

modelslab-chat-generation

github.com/modelslabAgent 工作流1356 次安装36 周前更新
代码仓库

关于 modelslab-chat-generation

此技能通过 ModelsLab 的 OpenAI 兼容端点发送聊天补全请求,面向需要调用多种 LLM 的开发者,支持提示词、工具调用、流式输出和结构化 JSON。

主要功能

  1. 01兼容 OpenAI 的聊天补全
  2. 02调用 60 多种 LLM 模型
  3. 03系统提示词与多轮对话
  4. 04工具调用与流式输出
  5. 05结构化 JSON 响应

适用场景

  1. 01构建对话式 AI 应用
  2. 02通过 OpenAI SDK 切换到 ModelsLab
  3. 03实时流式生成文本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/modelslab/skills --skill modelslab-chat-generation

安装后在 Claude Code 中输入/modelslab-chat-generation确认已加载。

详细介绍

ModelsLab 聊天/大模型生成

通过单个兼容 OpenAI 的端点,向 60 多种大模型发送聊天补全请求。

何时使用此技能

  • 与 AI 模型(DeepSeek、Llama、Gemini、Qwen、Mistral)聊天
  • 构建对话式 AI 应用
  • 使用系统提示词生成文本补全
  • 使用大模型进行函数/工具调用
  • 流式传输响应,实现实时输出
  • 获取结构化 JSON 响应

API 端点

聊天补全:POST https://modelslab.com/api/v7/llm/chat/completions

该端点遵循 OpenAI 聊天补全格式,因此可以轻松从 OpenAI 切换,或使用 OpenAI SDK。

快速开始

import requests

def chat(message, api_key, model="meta-llama-3-8B-instruct"):
    """Send a chat completion request.

    Args:
        message: The user message
        api_key: Your ModelsLab API key
        model: LLM model ID (use modelslab models search --feature llmaster to find models)
    """
    response = requests.post(
        "https://modelslab.com/api/v7/llm/chat/completions",
        json={
            "key": api_key,
            "model_id": model,
            "messages": [
                {"role": "user", "content": message}
            ],
            "max_tokens": 200,
            "temperature": 0.7
        }
    )

    data = response.json()

    if "choices" in data:
        return data["choices"][0]["message"]["content"]
    else:
        raise Exception(f"Error: {data.get('message', 'Unknown error')}")

# Usage
reply = chat(
    "Explain quantum computing in simple terms.",
    "your_api_key"
)
print(reply)

使用系统提示词

def chat_with_system(system_prompt, message, api_key, model="meta-llama-3-8B-instruct"):
    """Chat with a system prompt for role/behavior control."""
    response = requests.post(
        "https://modelslab.com/api/v7/llm/chat/completions",
        json={
            "key": api_key,
            "model_id": model,
            "messages": [
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": message}
            ],
            "max_tokens": 500,
            "temperature": 0.7
        }
    )

    data = response.json()
    if "choices" in data:
        return data["choices"][0]["message"]["content"]

# Usage
reply = chat_with_system(
    "You are a Python expert. Give concise code examples.",
    "How do I read a CSV file?",
    "your_api_key"
)

多轮对话

def conversation(messages, api_key, model="meta-llama-3-8B-instruct"):
    """Send a multi-turn conversation."""
    response = requests.post(
        "https://modelslab.com/api/v7/llm/chat/completions",
        json={
            "key": api_key,
            "model_id": model,
            "messages": messages,
            "max_tokens": 500,
            "temperature": 0.7
        }
    )
    return response.json()

# Multi-turn example
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is Python?"},
    {"role": "assistant", "content": "Python is a high-level programming language..."},
    {"role": "user", "content": "Show me a hello world example."}
]

result = conversation(messages, "your_api_key")
print(result["choices"][0]["message"]["content"])

兼容 OpenAI SDK

更改基础 URL 和 API 密钥后,即可使用官方 OpenAI Python SDK:

from openai import OpenAI

client = OpenAI(
    base_url="https://modelslab.com/api/v7/llm",
    api_key="your_modelslab_api_key"
)

response = client.chat.completions.create(
    model="meta-llama-3-8B-instruct",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ],
    max_tokens=100,
    temperature=0.7
)

print(response.choices[0].message.content)

cURL 示例

curl -X POST "https://modelslab.com/api/v7/llm/chat/completions" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "your_api_key",
    "model_id": "meta-llama-3-8B-instruct",
    "messages": [
      {"role": "user", "content": "Say hello in one sentence."}
    ],
    "max_tokens": 50,
    "temperature": 0.7
  }'

发现大模型

# Search all chat/LLM models
modelslab models search --feature llmaster

# Search by provider
modelslab models search --search "deepseek"
modelslab models search --search "llama"
modelslab models search --search "gemini"

# Get model details
modelslab models detail --id meta-llama-3-8B-instruct

常用大模型 ID

Meta Llama
  • meta-llama-3-8B-instruct — Llama 3 8B(快速、高效)
  • meta-llama-Llama-3.3-70B-Instruct-Turbo — Llama 3.3 70B(功能强大)
  • meta-llama-Meta-Llama-3.1-405B-Instruct-Turbo — Llama 3.1 405B(规模最大)
DeepSeek
  • deepseek-ai-DeepSeek-R1-Distill-Llama-70B — DeepSeek R1(推理)
  • deepseek-ai-DeepSeek-V3 — DeepSeek V3(通用)
Google
  • gemini-2.0-flash-001 — Gemini 2.0 Flash(快速)
  • gemini-2.5-pro — Gemini 2.5 Pro(能力强)
Qwen
  • Qwen-Qwen2.5-72B-Instruct-Turbo — Qwen 2.5 72B
  • Qwen-Qwen2.5-Coder-32B-Instruct — Qwen 2.5 Coder
Mistral
  • mistralai-Mixtral-8x7B-Instruct-v0.1 — Mixtral 8x7B
  • mistralai-Mistral-Small-24B-Instruct-2501 — Mistral Small

关键参数

参数类型必填描述
model_idstring是大模型标识符(别名:model)
messagesarray是包含 role 和 content 的消息对象数组
temperaturefloat否采样温度(0-2,默认值因模型而异)
max_tokensinteger否要生成的最大 token 数
top_pfloat否核采样(0-1)
top_kinteger否Top-k 采样
frequency_penaltyfloat否频率惩罚(-2 到 2)
presence_penaltyfloat否存在惩罚(-2 到 2)
streamingboolean否启用流式响应(别名:stream)
ninteger否补全数量(1-10)
stoparray否停止序列(最多 4 个)
seedinteger否用于确保结果可复现的随机种子
toolsarray否函数/工具定义
tool_choicestring否工具选择策略
response_formatobject否JSON 模式使用 {"type": "json_object"}

响应格式

响应遵循 OpenAI 聊天补全格式:

{
  "id": "gen-...",
  "model": "meta-llama-3-8B-instruct",
  "object": "chat.completion",
  "created": 1771658583,
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      }
    }
  ],
  "usage": {
    "prompt_tokens": 17,
    "completion_tokens": 10,
    "total_tokens": 27
  }
}

错误处理

def safe_chat(message, api_key, model="meta-llama-3-8B-instruct"):
    """Chat with error handling."""
    try:
        response = requests.post(
            "https://modelslab.com/api/v7/llm/chat/completions",
            json={
                "key": api_key,
                "model_id": model,
                "messages": [{"role": "user", "content": message}],
                "max_tokens": 200
            }
        )
        data = response.json()

        if "choices" in data:
            return data["choices"][0]["message"]["content"]
        elif data.get("status") == "error":
            raise Exception(data.get("message", "Unknown error"))
        else:
            raise Exception(f"Unexpected response: {data}")

    except requests.exceptions.RequestException as e:
        raise Exception(f"Network error: {e}")

try:
    reply = safe_chat("Hello!", "your_api_key")
    print(reply)
except Exception as e:
    print(f"Chat failed: {e}")

资源

相关技能

  • modelslab-model-discovery - 查找和筛选模型
  • modelslab-account-management - 管理 API 密钥和账单
  • modelslab-image-generation - 根据文本生成图像

评论

支持 Markdown