Skip to content
LlamaIndex 文档版本 跟随上游 源快照 c5e72804 更新于 2026-10-18

llama-index-llms-nvidia 包扩展了 NVIDIA 类,以支持用于代码补全模型的 /completions API,例如:

  • bigcode/starcoder2-7b
  • bigcode/starcoder2-15b

安装

%pip install --upgrade --quiet llama-index-llms-nvidia

设置

开始使用:

  1. 在 NVIDIA 创建免费账户,该平台托管 NVIDIA AI Foundation 模型。

  2. 点击你选择的模型。

  3. 在 Input 下选择 Python 选项卡,然后点击 Get API Key。接着点击 Generate Key。

  4. 复制生成的密钥并保存为 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="")

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。