如何调用大语言模型的API?

1、调用参数

调用大语言模型的API,相当于调用已经写好的函数,我们只需要结合我们的实际需求进行包装一下(也就是学会用哪些参数去调用就行)。

model

,即调用的模型,一般取值包括"gpt-3.5-turbo"(ChatGPT-3.5)、"gpt-3.5-16k-0613"(ChatGPT-3.5 16K 版本)、"gpt-4"(ChatGPT-4)。注意,不同模型的成本是不一样的。

message

,即我们的 prompt。ChatCompletion 的 message 需要传入一个列表,列表中包括多个不同角色的 prompt。我们可以选择的角色一般包括 system:即前文中提到的 system prompt;user:用户输入的 prompt;assitance:助手,一般是模型历史回复,作为给模型参考的示例。

data = {

"model": "/mnt/work/deepseek-32b/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",

"messages": [

{

"role": "system",

"content": "你是一位专业的学术写作助手,擅长帮助用户根据给定的主题关键词或段落生成高质量的学术论文。请根据提供的信息,创作一篇结构完整、内容丰富的学术论文。\n\n在撰写论文时,请注意以下几个方面:\n- 确保论文结构清晰,包括引言、文献综述、方法论、结果和讨论、结论等部分。\n- 使用丰富多样的词汇和表达方式。\n- 提供具体的例子、数据和引用支持你的观点。\n- 保持逻辑连贯性和流畅性。\n- 确保文章具有学术严谨性和专业性。"

},

{

"role": "user",

"content": f"请根据以下提供的信息,创作一篇结构完整、内容丰富的学术论文:\n\n{input_data}\n\n请直接输出生成的论文。"

}

],

"max_tokens": 128000,

"temperature": 0.5

}

temperature

温度。即前文中提到的 Temperature 系数。(0-1)越小,大模型生成的文本越稳定。

max_tokens

最大 token 数,即模型输出的最大 token 数。OpenAI 计算 token 数是合并计算 Prompt 和 Completion 的总 token 数,要求总 token 数不能超过模型上限(如默认模型 token 上限为 4096)。因此,如果输入的 prompt 较长,需要设置较小的 max_token 值,否则会报错超出限制长度。

百度文心实操:

import requests

import json

import time

import os

如果你需要通过代理端口访问,你需要如下配置

os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:1080'

os.environ["HTTP_PROXY"] = 'http://127.0.0.1:1080'

def get_access_token():

api_key = ""

secret_key = ""

url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials\&client_id={api_key}\&client_secret={secret_key}"

设置 POST 访问

payload = json.dumps("")

headers = {

'Content-Type': 'application/json',

'Accept': 'application/json'

}

通过 POST 访问获取账户对应的 access_token

response = requests.request("POST", url, headers=headers, data=payload)

print(response.json())

return response.json().get("access_token")

一个封装 Wenxin 接口的函数,参数为 Prompt,返回对应结果

def get_completion_weixin(prompt, temperature = 0.1, access_token = ""):

'''

prompt: 对应的提示词

temperature:温度系数

access_token:已获取到的秘钥

'''

url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token={access_token}"

配置 POST 参数

payload = json.dumps({

"messages": [

{

"role": "user",# user prompt

"content": "{}".format(prompt)# 输入的 prompt

}

],

"temperature" : temperature

})

headers = {

'Content-Type': 'application/json'

}

time.sleep(3)

发起请求

response = requests.request("POST", url, headers=headers, data=payload)

返回的是一个 Json 字符串

js = json.loads(response.text)

print(js)

return js["result"]

if name == "main":

access_token = get_access_token()

prompt = f"Given the sentence, assign a sentiment label from ['positive', 'negative', 'neutral']. Sentence: Ok, first assesment of the #kindle2 ...it fucking rocks!!! Return label only without any other text."

ans = get_completion_weixin(prompt=prompt, access_token=access_token)

print(ans)

部署到服务器上面:

@manager.route('/builtintranslate', methods=['POST']) # noqa: F821

@token_required

@validate_request("target_text","target_language")

def translate(tenant_id):

def extract_json(text):

使用正则表达式提取 JSON 数据部分

match = re.search(r'json\n(.*?)\n', text, re.DOTALL)

if not match:

return None

json_str = match.group(1)

try:

解析 JSON 数据

data = json.loads(json_str)

return data

except json.JSONDecodeError:

return None

req = request.json

text = req["target_text"]

to = req["target_language"]

data = {

"model": "/mnt/work/deepseek-32b/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",

"messages": [{"role": "system", "content": "你是一个多语言翻译助手,支持多种语言的文本翻译,包括但不限于英语、中文、法语等。我将告诉你需要翻译的内容和目标语言,希望你尽快为我提供翻译出结果."},

{"role": "user",

"content": f"请将以下<Input>{text}</Input>中的文案翻译为{to}语言,\n并以如下JSON格式返回结果:\n{{\"translate\": \"\"}}"}

],

"max_tokens": 100000,

"temperature": 0.1,

}

url = "http://10.0.62.105:8102/v1/chat/completions"

headers = {"Content-Type": "application/json"}

response = requests.post(url, headers=headers, json=data)

js = json.loads(response.text)

print(js["choices"][0]["message"]["content"])

res = extract_json(js["choices"][0]["message"]["content"]) # 字符串

conv = {

"response": res

}

return get_result(data=conv)

相关推荐
字节跳动技术团队3 分钟前
Multi-SWE-bench:首个多语言代码修复基准开源
人工智能
AI蜗牛车3 分钟前
【LLM+Code】Github Copilot Agent/VsCode Agent 模式Prompt&Tools详细解读
人工智能·语言模型·github·copilot·agent
A_ugust__9 分钟前
Vue3集成浏览器API实时语音识别
人工智能·语音识别·xcode
何仙鸟23 分钟前
卷积神经网络
人工智能·深度学习
结冰架构23 分钟前
【AI提示词】艺人顾问
人工智能·ai·提示词·艺人·顾问
鸿蒙布道师28 分钟前
AI硬件遭遇“关税风暴“:中国科技企业如何破局?
人工智能·科技·嵌入式硬件·深度学习·神经网络·opencv·机器人
那年一路北30 分钟前
探索 CameraCtrl模型:视频生成中的精确摄像机控制技术
人工智能
周杰伦_Jay1 小时前
continue插件实现IDEA接入本地离线部署的deepseek等大模型
java·数据结构·ide·人工智能·算法·数据挖掘·intellij-idea
海森大数据1 小时前
Crawl4AI:打破数据孤岛,开启大语言模型的实时智能新时代
人工智能·语言模型·自然语言处理
果冻人工智能1 小时前
我在大厂做 机器学习工程经理:这六顶帽子,每天都在换
人工智能