👑👑👑 LLM小萌新,体验2个是青铜,体验6个是黄金,体验10个上王者!
马上接入 示例代码 报错说明无需逐个注册:不用再一个个注册中国所有大模型厂商开发后台了,有一个DMXAPI账号全搞定。
模型全覆盖:包括国内外超过100个大模型。
轻量使用,社群陪伴:加入LangChain中国社区超过10000名开发者一起成长,90后、00后 LLM开发者都在这里。
我对国内大模型的一点体会:我是本站站长康康。因为一直在折腾数据预处理,会需要在不同的模型测试不同的 Prompt,有了一点点体会。我的整体感觉是:国内大模型能力差距很小,大尺寸模型的能力基本都可以平替 GPT 3.5 了,但和 GPT-4 差距还是挺明显的。做RAG知识库国内模型完全胜任,但要做一些合同分析等,还是需要提升。我手头经常是几个模型一起串起来用,因为有些 prompt 你会发现就是某个模型更容易理解。我的体会是:在你迭代 prompt 前,可以先多换几个模型试试,比在一个模型上死磕 Prompt 好。
推荐学习并测试下面这些模型 | 模型全称 | 开发者平台 |
---|---|---|
OpenAI:4o-mini 真香! | gpt-4o-mini | 开发者平台 |
OpenAI: 复杂逻辑、数据生成、逻辑判断等,还得上GPT-4。 | gpt-4 | 开发者平台 |
OpenAI | gpt-4o | 开发者平台 |
OpenAI: gpt-4o-mini 出来后就被淘汰了,但可以感受下 | gpt-3.5-turbo | 开发者平台 |
Anthropic: 正儿八经的文案工作,可以用 claude 试试,感觉比 OPENAI 正经点。 | claude-3-5-sonnet-20240620 | 开发者平台 |
Google: 中文环境不推荐用谷歌系模型 | gemini-pro | 开发者平台 |
讯飞星火大模型 | SparkDesk | 开发者平台 |
讯飞星火大模型 | SparkDesk-v3.5 | 开发者平台 |
MINIMAX | abab6-chat | 开发者平台 |
MINIMAX | abab5.5-chat | 开发者平台 |
百川智能: 前搜狗王小川创办,我天天用 百小应APP,搜索方面感觉强一些。 | Baichuan2-Turbo | 开发者平台 |
字节跳动豆包大模型 | doubao-pro-32k | 开发者平台 |
百度文心一言:看你兴趣咯,百度有免费模型,可以去他们平台拿来玩,但不太聪明。 | ERNIE-4.0-8K | 开发者平台 |
智谱:国内一线大模型厂商,绕不开的GLM-4 | glm-4 | 开发者平台 |
腾讯混元 | hunyuan-all | 开发者平台 |
月之暗面KIMI: KIMI家模型我比较下来,确实聪明一丢丢。 | moonshot-v1-32k | 开发者平台 |
阿里巴巴千问:Qwen系列很受欢迎 | qwen2-72b-instruct | 开发者平台 |
阿里巴巴千问 | qwen-turbo | 开发者平台 |
零一万物:李开复老师创业公司 | yi-34b-chat-0205 | 开发者平台 |
阶跃星辰stepfun: 这家在上海,挺低调的,已经是万亿参数大模型。 | step-2-16k-nightly | 开发者平台 |
深度求索deepseek: 也是低调的一家模型厂商。第一个喊出百万Token ¥1元,模型能力一点不虚 | deepseek-ai/deepseek-v2-chat | 开发者平台 |
360自研大模型 | 360GPT_S2_V9 | 开发者平台 |
每分钟可以处理的请求数量。
每天可以处理的请求数量。
每分钟可以处理的图像数量。。
每分钟可以处理的令牌数量。
每天可以处理的令牌数量。
从请求应用端发送到大模型收到响应的时间。
# 这是一个 DMXAPI 调用 API 的 Python 例子
import requests
import json
# ------------------------------------------------------------------------------------
# 3秒步接入 DMXAPI : 修改 Key 和 Base url (https://www.dmxapi.com)
# ------------------------------------------------------------------------------------
url = "https://www.dmxapi.com/v1/chat/completions" # 这里不要用 openai base url,需要改成DMXAPI的中转 https://www.dmxapi.com ,下面是已经改好的。
payload = json.dumps({
"model": "gpt-4o-mini", # 这里是你需要访问的模型,改成上面你需要测试的模型名称就可以了。
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "周树人和鲁迅是兄弟吗?"
}
]
})
headers = {
'Accept': 'application/json',
'Authorization': 'sk-***********************************************', # 这里放你的 DMXapi key
'User-Agent': 'DMXAPI/1.0.0 (https://www.dmxapi.com)', # 这里也改成 DMXAPI 的中转URL https://www.dmxapi.com,已经改好
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
# ------------------------------------------------------------------------------------
# 在 Openai官方库 中使用 DMXAPI KEY 的例子
# 需要先 pip install openai
# ------------------------------------------------------------------------------------
from openai import OpenAI
client = OpenAI(
api_key="sk-********************************************", # 替换成你的 DMXapi 令牌key
base_url="https://www.dmxapi.com/v1", # 需要改成DMXAPI的中转 https://www.dmxapi.com/v1 ,这是已经改好的。
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "周树人和鲁迅是兄弟吗?",
}
],
model="gpt-4o-mini", # 替换成你先想用的模型全称, 模型全称可以在DMXAPI 模型价格页面找到并复制。
)
print(chat_completion)
import json
import requests
url = "https://www.dmxapi.com/v1/chat/completions"
payload = {
"model": "gpt-4o-mini", # 模型名称
"stream": True, # 流式输出True开启
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "周树人和鲁迅是兄弟吗?"},
],
}
headers = {
"Accept": "application/json",
"Authorization": "sk-****************************************************", # 这里放你的 DMXAPI key
"User-Agent": "DMXAPI/1.0.0 (https://www.dmxapi.com)",
"Content-Type": "application/json",
}
response = requests.post(url, headers=headers, json=payload, stream=True)
buffer = ""
for chunk in response.iter_content(chunk_size=None):
if chunk:
buffer += chunk.decode("utf-8")
while "\n" in buffer:
line, buffer = buffer.split("\n", 1)
if line.strip() == "":
continue
if line.startswith("data: "):
data_line = line[len("data: ") :].strip()
if data_line == "[DONE]":
break
else:
try:
data = json.loads(data_line)
delta = data["choices"][0]["delta"]
content = delta.get("content", "")
print(content, end="", flush=True)
except json.JSONDecodeError:
# 如果JSON解析失败,可能是数据不完整,继续累积buffer
buffer = line + "\n" + buffer
break
from pydantic import BaseModel
from openai import OpenAI
from dotenv import load_dotenv
import json
from textwrap import dedent
# 加载环境变量,例如 API key 等配置信息
load_dotenv()
# 设置 OpenAI API 的工厂名称,默认为 "openai"
factory = "openai"
# 初始化 OpenAI 客户端,传入 API key 和 base URL
client = OpenAI(
api_key="sk-***********************************************", # 替换为你的 DMXAPI key
base_url="https://www.dmxapi.com/v1/" # 这里是DMXAPI的 base url,注意这里需要 /v1/
)
# 定义一个产品信息类,用于解析 API 返回的数据
class ProductInfo(BaseModel):
product_name: str # 产品名称,字符串类型
price: float # 价格,浮点数类型
description: str # 产品描述,字符串类型
# 定义一个提示信息,用于请求模型返回 JSON 格式的产品信息
product_prompt = '''根据给出的产品进行分析,按json格式用中文回答,json format:product_name, price, description.'''
# 获取产品信息的函数,传入用户的问题
def get_product_info(question: str):
# 使用 OpenAI 客户端进行聊天模型的请求
completion = client.beta.chat.completions.parse(
model="gpt-4o-2024-08-06", # 指定使用的模型
messages=[
{"role": "system", "content": dedent(product_prompt)}, # 发送系统消息,设置模型的行为
{"role": "user", "content": question}, # 发送用户消息,用户提出问题
],
response_format=ProductInfo, # 指定返回的数据格式为 ProductInfo
)
# 返回模型解析的第一个选项的消息结果
return completion.choices[0].message.parsed
# 初始化一个空的产品信息字典
product_inform = {}
# 定义将解析的结果转换为 JSON 的函数
def transform2JSON(parsed_result):
# print(parsed_result) # 打印解析结果
# 将解析的结果存储到字典中
product_inform["product_name"] = parsed_result.product_name
product_inform["price"] = parsed_result.price
product_inform["description"] = parsed_result.description
# 将字典转换为 JSON 字符串并返回,ensure_ascii=False 允许中文字符正常显示
return json.dumps(product_inform, ensure_ascii=False, indent=4)
# 定义用户输入的问题,即一个产品信息的描述
question = "75寸小米电视机"
# 调用函数获取产品信息
result = get_product_info(question)
# 将解析结果转换为 JSON 格式并打印
json_result = transform2JSON(result)
print(json_result)
import openai
# 设置OpenAI API密钥和基础URL
openai.api_key = "sk-***********************************************" # 替换为你的 DMXAPI key
openai.base_url = "https://www.dmxapi.com/v1/" # 这里是DMXAPI的 base url,注意这里v1后面需要/,最后的 / 很容易漏掉。
def get_embedding(text):
response = openai.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding
# 示例文本
text = "这是一个示例文本,用于演示如何获取文本嵌入。"
# 获取文本嵌入
embedding = get_embedding(text)
print(f"文本: {text}")
print(f"嵌入向量维度: {len(embedding)}")
print(f"嵌入向量前5个元素: {embedding[:5]}")
# 这是一个 DMXAPI 调用 API 的 Python 例子
import requests
import json
# ------------------------------------------------------------------------------------
# 这里不要用 openai base url,需要改成DMXAPI的中转 https://www.dmxapi.com ,下面是已经改好的。
# ------------------------------------------------------------------------------------
url = "https://www.dmxapi.com/v1/chat/completions"
payload = json.dumps({
"model": "o1-mini-2024-09-12", # 01系列模型包括:o1-preview、o1-preview-2024-09-12、o1-mini、o1-mini-2024-09-12
"messages": [
# ================== 下面 2个参数,在使用 o1-preview 系列模型时,不需要填写 ==================
#{
# "role": "system",
# "content": "You are a helpful assistant."
#}, ================== 上面 2个参数,在使用 o1-preview 系列模型时,不需要填写 ==================
{
"role": "user",
"content": "周树人和鲁迅是兄弟吗?"
}
]
})
headers = {
'Accept': 'application/json',
'Authorization': 'sk-**********************************************', # 这里放你的 DMXapi key
'User-Agent': 'DMXAPI/1.0.0 (https://www.dmxapi.com)', # 这里也改成 DMXAPI 的中转URL https://www.dmxapi.com,已经改好
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload,timeout=(10.0, 300.0)) # 01系列模型不支持流式输出,所以要设置 timeout,避免太长回答造成的超时。
print(response.text)
# ------------------------------------------------------------------------------------
# 在 LangChain 中使用 DMXAPI KEY 的例子
# 需要先 pip install langchain
# ------------------------------------------------------------------------------------
import os
from langchain import OpenAI
from langchain.llms import OpenAI
os.environ["OPENAI_API_KEY"] = (
"sk-********************************************" # 替换成你的 DMXapi 令牌key
)
os.environ["OPENAI_API_BASE"] = (
"https://www.dmxapi.com/v1" # 这里不要用 openai base url,需要改成DMXAPI的中转 https://www.dmxapi.com ,这是已经改好的。
)
def text():
llm = OpenAI(temperature=0.9)
text = "周树人和鲁迅是兄弟吗?"
print(llm(text))
if __name__ == "__main__":
text()
import http.client
import json
# 定义 API 密钥和基本 URL
API_KEY = "sk-*****************************************************" # 请替换为你的 DMXAPI 令牌
API_HOST = "www.dmxapi.com" # API 主机地址
API_ENDPOINT = "/v1/images/generations" # API 请求路径
# 请求参数
prompt_text = "科技感的店铺门口,店铺名称是DMXAPI" # 描述生成图像的提示词
model_name = "dall-e-3" # 使用的 AI 模型
image_size = "1024x1024" # 图像尺寸 支持 1792x1024, 1024 × 1792, 1024x1024
# 构建请求的 JSON 数据
payload = json.dumps(
{
"prompt": prompt_text,
"n": 1, # 生产图片数量,修改会报错,默认1就可以。
"model": model_name,
"size": image_size,
}
)
# 定义请求头信息
headers = {
"Authorization": f"Bearer {API_KEY}", # 使用变量 API_KEY
"Accept": "application/json",
"User-Agent": "DMXAPI/1.0.0 (https://www.dmxapi.com)",
"Content-Type": "application/json",
}
# 建立 HTTPS 连接
conn = http.client.HTTPSConnection(API_HOST)
# 发送 POST 请求
conn.request("POST", API_ENDPOINT, payload, headers)
# 获取响应并读取数据
res = conn.getresponse()
data = res.read()
# 输出结果
print(data.decode("utf-8"))
import requests
# 将 URL 和 API key 提取为独立变量,便于管理和修改
域名 = "https://www.dmxapi.com/" # 定义API的基础域名
API_URL = 域名 + "v1/chat/completions" # 完整的API请求URL
API_KEY = "sk-******************************************************" # # 请替换为你的 DMXAPI 令牌
# 创建请求数据payload,包括所需的模型和消息内容
payload = {
"model": "gpt-4o", # 指定使用的多模态AI模型,除了gpt-4o 也推荐使用 claude-3-5-sonnet系列
"messages": [
{
"role": "system", # 系统角色信息,可以为空
"content": "",
},
{
"role": "user", # 用户角色的消息内容
"content": [
{"type": "text", "text": "请解释图片里说了哪些内容"}, # 发送文本消息
{
"type": "image_url", # 发送图片URL
"image_url": {
"url": "https://pic.rmb.bdstatic.com/bjh/down/9bfc5b8f8f725467a1e3ccc4d7adc160.png" # 这是图片URL
},
},
],
},
],
"temperature": 0.1, # 设置生成文本的随机性,越低输出越有确定性
"user": "DMXAPI", # 发送请求的用户标识
}
# 定义HTTP请求头,包括内容类型和身份验证信息
headers = {
"Content-Type": "application/json", # 设置内容类型为JSON
"Authorization": f"Bearer {API_KEY}", # 使用 f-string 动态插入 API_KEY,进行身份验证
"User-Agent": f"DMXAPI/1.0.0 ({域名})", # 自定义的User-Agent,用于识别客户端信息
}
# 发送POST请求,将请求数据和头信息传入API,获取响应
response = requests.post(API_URL, headers=headers, json=payload)
# 输出API的响应内容
print(response.text)
import http.client
import json
# 创建一个 HTTPS 连接对象,连接到指定的域名
conn = http.client.HTTPSConnection("www.dmxapi.com")
# 定义请求体,包含了 GPT-4 模型的参数设置
payload = json.dumps(
{
"model": "gpt-4o", # <--------------------------------------------------- 这类填模型全称
"max_tokens": 100,
"temperature": 0.8,
"stream": False, # 是否启用流式响应,这里设置为 False,表示不使用流式输出
"messages": [{"role": "user", "content": "上海今天几度?"}],
"tools": [ # 定义可用工具,这里定义了一个用于获取天气信息的函数
{
"type": "function", # 工具类型为函数
"function": {
"name": "get_current_weather", # 函数名称
"description": "获得天气信息", # 函数描述
"parameters": {
"type": "object", # 参数类型为对象
"properties": { # 参数属性
"location": {
"type": "string", # 地点参数的类型为字符串
"description": "城市和州名,例如:上海, 中国", # 地点参数的描述
},
"unit": {
"type": "string", # 温度单位类型为字符串
"enum": [
"celsius",
"fahrenheit",
], # 支持的单位有摄氏度和华氏度
},
},
"required": ["location"], # 必须提供地点参数
},
},
}
],
}
)
# 设置请求头部信息,指定接受和发送的数据格式
headers = {
"Accept": "application/json",
"Authorization": "Bearer sk--***********************************************', # ", ## <------------------- 这里填DMXAPI令牌
"Content-Type": "application/json",
}
# 发送 POST 请求到 API
conn.request("POST", "/v1/chat/completions", payload, headers)
# 获取服务器响应
res = conn.getresponse()
# 读取响应数据
data = res.read()
# 打印解码后的响应数据
print(data.decode("utf-8"))
状态代码 | 代码解释 |
---|---|
400 Bad Request | 请检查你的请求格式,一般都是客户端错误。 |
401 Unauthorized | API密钥验证未通过。你需要验证你的API密钥是否正确。其他原因可能是缺少凭证。 |
403 令牌分组 XXX 已被禁用 | 一般是令牌权限问题。新建令牌使用后还报错,需要联系管理员检查。 |
404 Not Found | 请检查 Base Url是否填写正确,尝试带上 /v1 或最后一个斜杠/。 |
413 Request Entity Too Large | prompt可能超长了。请缩短你的prompt,再次尝试,确认短prompt是否可以正常调用。 |
429 当前分组上游负载已饱和 | openai对单个账号有限流,429说明后端某个账号并发太高遇到限流,请继续尝试。 |
500 Internal Server Error | 服务器内部的错误。可能是中转服务器或OpenAI服务器的问题,不是你的问题。请联系管理员处理。 |
503 当前分组NNN下对于模型 xxxx 无可用渠道 | 中转平台后端管理的问题,请联系管理员,让他帮你加上这个模型。 |
反馈问题 & 提建议 & [企业级服务咨询],请扫我: