主题
llama-index-llms-nvidia 包扩展了 NVIDIA 类,以支持用于代码补全模型的 /completions API,例如:
bigcode/starcoder2-7bbigcode/starcoder2-15b
安装
%pip install --upgrade --quiet llama-index-llms-nvidia设置
开始使用:
在 NVIDIA 创建免费账户,该平台托管 NVIDIA AI Foundation 模型。
点击你选择的模型。
在 Input 下选择 Python 选项卡,然后点击
Get API Key。接着点击Generate Key。复制生成的密钥并保存为 NVIDIA_API_KEY。然后,你应该就可以访问这些端点了。
import getpass
import os
# del os.environ['NVIDIA_API_KEY'] ## delete key and reset
if os.environ.get("NVIDIA_API_KEY", "").startswith("nvapi-"):
print("Valid NVIDIA_API_KEY already in environment. Delete to reset")
else:
nvapi_key = getpass.getpass("NVAPI Key (starts with nvapi-): ")
assert nvapi_key.startswith(
"nvapi-"
), f"{nvapi_key[:5]}... is not a valid key"
os.environ["NVIDIA_API_KEY"] = nvapi_key# llama-parse is async-first, running the async code in a notebook requires the use of nest_asyncio
import nest_asyncio
nest_asyncio.apply()使用 NVIDIA API 目录
use_chat_completions 参数的用法
设为 None(默认值)时,根据查询关键字参数,在每次调用时决定使用 /chat/completions 还是 /completions 端点。
- 设为
False以使用/completions端点。 - 设为
True以使用/chat/completions端点。
from llama_index.llms.nvidia import NVIDIA
llm = NVIDIA(model="bigcode/starcoder2-15b", use_chat_completions=False)可用模型
使用 is_chat_model 筛选可用的文本补全模型:
print([model for model in llm.available_models if model.is_chat_model])使用 NVIDIA NIM
除了连接托管的 NVIDIA NIM,该连接器还可用于连接本地 NIM 实例。这在需要时可以帮助你将应用本地化。
有关如何设置本地 NIM 实例的说明,请参阅 NVIDIA NIM。
from llama_index.llms.nvidia import NVIDIA
# Connect to a NIM running at localhost:8080
llm = NVIDIA(base_url="http://localhost:8080/v1")补全:.complete()
我们可以使用 .complete()/.acomplete()(接受字符串)来提示所选模型给出响应。
让我们使用默认模型来完成此任务。
print(llm.complete("# Function that does quicksort:"))如预期,LlamaIndex 返回 CompletionResponse。
异步补全:.acomplete()
也有异步实现,可以用同样的方式使用!
await llm.acomplete("# Function that does quicksort:")流式输出
x = llm.stream_complete(prompt="# Reverse string in python:", max_tokens=512)for t in x:
print(t.delta, end="")异步流式输出
x = await llm.astream_complete(
prompt="# Reverse program in python:", max_tokens=512
)async for t in x:
print(t.delta, end="")