如何调用大语言模型的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)

相关推荐
董厂长13 分钟前
langchain :记忆组件混淆概念澄清 & 创建Conversational ReAct后显示指定 记忆组件
人工智能·深度学习·langchain·llm
G皮T4 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼4 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间4 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享4 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾4 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码4 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5895 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
雷羿 LexChien5 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
两棵雪松6 小时前
如何通过向量化技术比较两段文本是否相似?
人工智能