LLM API使用教程:NVIDIA免费API KEY
本文介绍了两种调用LLM大模型API的方式:OpenAI标准API和requests模拟请求,并以NVIDIA平台为例提供详细教程。主要内容包括:1.背景说明API调用在批处理和工程集成中的必要性;2.对比两种API调用方式的代码实现;3.NVIDIA平台注册流程和API Key获取步骤;4.实战演示通过API生成阳朔3日旅游攻略。教程包含完整代码示例和效果展示,帮助开发者快速上手API集成应用。
一、背景
当前LLM大模型生成式AI,通过网页对话提问方式给予交互和回答,对于个人用于解决问题够用了,但是对于复杂业务处理、批量处理、以及想要集成到项目工程时则需要进行代码方式进行API调用。例如批处理某些文件,针对某个函数生成测试用例,对某个函数做代码review分析等。
二、原理
API调用有openai的API方式和request api两种方式,openAI的API是一种各厂商统一的API调用格式,而request方式则是模拟用户网页输入,构造http请求的方式进行交互,非统一标准,和爬虫的机制类似,都是脚本代替人工输入,进行自动化处理,API key是校验码,和爬虫中使用的token作用类似,一般模型厂商会提供代码示例。
- openAI API
from openai import OpenAI
client = OpenAI(
base_url = "https://integrate.api.nvidia.com/v1",
api_key = "$API_KEY_REQUIRED"
)
completion = client.chat.completions.create(
model="meta/llama3-70b-instruct",
messages=[{"role":"user","content":"xxx"}],
temperature=0.5,
top_p=1,
max_tokens=1024,
stream=True
)
for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
需要先安装openai的python库
pip install --upgrade openai
- request 方式
不同厂商标准不一样,以下是nvidia的方式,代码其实都非常简单。使用时仅需执行如下操作:
- 替换API key
- 填充提示词content
import requests, base64
invoke_url = "https://integrate.api.nvidia.com/v1/chat/completions"
stream = False
headers = {
"Authorization": "Bearer $API_KEY_REQUIRED",
"Accept": "text/event-stream" if stream else "application/json"
}
payload = {
"model": "meta/llama-4-maverick-17b-128e-instruct",
"messages": [{"role":"user","content":""}],
"max_tokens": 512,
"temperature": 1.00,
"top_p": 1.00,
"frequency_penalty": 0.00,
"presence_penalty": 0.00,
"stream": stream
}
response = requests.post(invoke_url, headers=headers, json=payload)
if stream:
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
else:
print(response.json())
三、NVIDIA API调用教程
网页:https://build.nvidia.com/explore/discover
新用户有1000次免费次数。
第一步:注册账号
网页如下,点击Get API Key时会提示注册账号,通过邮箱注册账号,设置密码,然后进行verify校验电话号码。
注意需要verify,verify后才可以获取API key。
第二步:生成API KEY
此时再次点击Get API Key,会生成key,total值会变成1。
第三步:代码示例
点击view code会有一些demo代码示例,当前提供了如下几种模型,llaMA、deepseek、千问模型。
测试验证,如下代码(替换API KEY后执行)
import requests, base64
invoke_url = "https://integrate.api.nvidia.com/v1/chat/completions"
stream = False
headers = {
#替换API KEY
"Authorization": "$API_KEY",
"Accept": "text/event-stream" if stream else "application/json"
}
payload = {
"model": "meta/llama-4-maverick-17b-128e-instruct",
"messages": [{"role":"user","content":""}],
"max_tokens": 512,
"temperature": 1.00,
"top_p": 1.00,
"frequency_penalty": 0.00,
"presence_penalty": 0.00,
"stream": stream
}
response = requests.post(invoke_url, headers=headers, json=payload)
if stream:
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
else:
print(response.json())
上述代码片段,可以正常输出内容,有response结果如下,说明可以正常访问。
第四步:实战旅游推荐
生成一份旅游攻略,提示词如下,以及返回结果如下:
"messages": [{"role":"user","content":"10.1想去阳朔旅游3天,请帮我生成一份旅游攻略,包括景点、美食等"}],
E:\AI学习\2_LLM_云端API调用>python llm_nvinda.py
{'id': 'chatcmpl-1a869ab90b454bc8be56cc6219b17c67', 'object': 'chat.completion', 'created': 1758411891, 'model': 'meta/llama-4-maverick-17b-128e-instruct', 'choices': [{'index': 0, 'message': {'role': 'assistant', 'content': '### 10.1阳朔3日游旅游攻略\n\n#### 第一天\n\n1. **早上:西街**\n - 到达阳朔后,首先逛逛著名的西街。西街是阳朔的中心,汇集了各
种特色小吃、土特产店和纪念品店。你可以在这里品尝当地的美食,购买一些纪念品。\n\n2. **下午:漓江精华游**\n - 参加漓江精华游,乘船沿漓江而下,欣赏两岸的秀丽风光。途经兴坪、渔村
等著名景点,感受“桂林山水甲天下,阳朔山水甲桂林”的美誉。\n\n3. **晚上:夜游阳朔**\n - 晚上,可以选择观看《印象刘三姐》大型山水实景演出,体验刘三姐的浪漫故事。演出结束后,沿
着江边散步,欣赏夜间的阳朔风光。\n\n#### 第二天\n\n1. **早上:遇龙河漂流**\n - 前往遇龙河,体验漂流的乐趣。遇龙河是漓江的支流,河道蜿蜒,两岸风景秀丽,是放松休闲的好去处。\n\
n2. **中午:金宝村**\n - 在金宝村享用午餐,品尝农家饭菜。金宝村是阳朔的一个典型农村,可以体验当地的民俗风情。\n\n3. **下午:十里画廊**\n - 骑自行车或步行于十里画廊,欣赏沿
途的田园风光。十里画廊是一条长约6公里的风景带,路边有许多景点和农家乐。\n\n4. **晚上:阳朔啤酒鱼**\n - 晚餐尝试阳朔的特色美食——啤酒鱼。这是一道非常有名的当地菜肴,口味独特
,值得一试。\n\n#### 第三天\n\n1. **早上:月亮山和蝴蝶泉**\n - 游览月亮山,攀登到山顶,可以俯瞰周围的美丽景色。再前往蝴蝶泉,欣赏清澈的泉水和众多的蝴蝶。\n\n2. **中午:高寨村
**\n - 在高寨村享用午餐,体验农家', 'refusal': None, 'annotations': None, 'audio': None, 'function_call': None, 'tool_calls': [], 'reasoning_content': None}, 'logprobs': None
E:\AI学习\2_LLM_云端API调用> 'stop_reason': None}], 'service_tier': None, 'system_fingerprint': None, 'usage': {'prompt_tokens': 102, 'total_tokens': 614, 'completion_tokens':
512, 'prompt_tokens_details': None}, 'prompt_logprobs': None, 'kv_transfer_params': None}
可以切换模型进行测试使用,API调用方式一样。
四、参考资料
https://zhuanlan.zhihu.com/p/703523223
https://docs.pingcode.com/baike/2702577
https://zhuanlan.zhihu.com/p/682480006
更多推荐
所有评论(0)