关于 modelslab-chat-generation
此技能通过 ModelsLab 的 OpenAI 兼容端点发送聊天补全请求,面向需要调用多种 LLM 的开发者,支持提示词、工具调用、流式输出和结构化 JSON。
主要功能
- 01兼容 OpenAI 的聊天补全
- 02调用 60 多种 LLM 模型
- 03系统提示词与多轮对话
- 04工具调用与流式输出
- 05结构化 JSON 响应
适用场景
- 01构建对话式 AI 应用
- 02通过 OpenAI SDK 切换到 ModelsLab
- 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(通用)
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 72BQwen-Qwen2.5-Coder-32B-Instruct— Qwen 2.5 Coder
Mistral
mistralai-Mixtral-8x7B-Instruct-v0.1— Mixtral 8x7Bmistralai-Mistral-Small-24B-Instruct-2501— Mistral Small
关键参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
model_id | string | 是 | 大模型标识符(别名:model) |
messages | array | 是 | 包含 role 和 content 的消息对象数组 |
temperature | float | 否 | 采样温度(0-2,默认值因模型而异) |
max_tokens | integer | 否 | 要生成的最大 token 数 |
top_p | float | 否 | 核采样(0-1) |
top_k | integer | 否 | Top-k 采样 |
frequency_penalty | float | 否 | 频率惩罚(-2 到 2) |
presence_penalty | float | 否 | 存在惩罚(-2 到 2) |
streaming | boolean | 否 | 启用流式响应(别名:stream) |
n | integer | 否 | 补全数量(1-10) |
stop | array | 否 | 停止序列(最多 4 个) |
seed | integer | 否 | 用于确保结果可复现的随机种子 |
tools | array | 否 | 函数/工具定义 |
tool_choice | string | 否 | 工具选择策略 |
response_format | object | 否 | 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}")
资源
- API 文档:https://docs.modelslab.com/uncensored-chat-api/overview
- 模型浏览器:https://modelslab.com/models
- 获取 API 密钥:https://modelslab.com/dashboard/api-keys
- 命令行工具:https://github.com/ModelsLab/modelslab-cli
相关技能
modelslab-model-discovery- 查找和筛选模型modelslab-account-management- 管理 API 密钥和账单modelslab-image-generation- 根据文本生成图像
评论
支持 Markdown