跳转到主要内容

NexaAI Python SDK API 参考

本文档提供 NexaAI Python SDK 中所有模块与类的完整 API 说明。关于平台相关的安装与示例,请参见平台指南:

核心模块

LLM(大语言模型)

LLM 类提供文本生成与对话能力。

初始化

from nexaai import LLM, ModelConfig

# 初始化 LLM
config = ModelConfig()
llm = LLM.from_(model="model_name_or_path", config=config, plugin_id="cpu_gpu", device_id="cpu")

核心方法

generate_stream(prompt, config=None)
  • 以流式方式生成文本 token
  • 参数:
    • prompt (str):输入提示词
    • config (GenerationConfig,可选):生成配置
  • 返回:迭代产生文本 token 的生成器,结束时返回 GenerateResult generate(prompt, config=None, on_token=None)
  • 生成文本,可选流式 token 回调
  • 参数:
    • prompt (str):输入提示词
    • config (GenerationConfig,可选):生成配置
    • on_token (Callable[[str], bool],可选):流式 token 回调函数
  • 返回:包含生成文本与性能数据的 GenerateResult apply_chat_template(messages, tools=None, enable_thinking=False)
  • 将聊天模板应用到会话
  • 参数:
    • messages (List[LlmChatMessage]):会话历史
    • tools (str,可选):工具 JSON 字符串
    • enable_thinking (bool):是否启用思维模式
  • 返回:格式化后的提示词字符串 reset()
  • 重置会话状态并清空 KV 缓存 save_kv_cache(path)
  • 保存 KV 缓存到文件
  • 参数:path (str):缓存保存路径 load_kv_cache(path)
  • 从文件加载 KV 缓存
  • 参数:path (str):缓存载入路径

VLM(视觉语言模型)

VLM 类提供多模态理解与生成能力。

初始化

from nexaai import VLM, ModelConfig

# 初始化 VLM
config = ModelConfig()
vlm = VLM.from_(model="model_name_or_path", config=config, plugin_id="cpu_gpu", device_id="")

核心方法

generate_stream(prompt, config=None)
  • 以流式方式生成文本 token
  • 参数:
    • prompt (str):输入提示词
    • config (GenerationConfig,可选):生成配置(可包含 image_paths/audio_paths)
  • 返回:迭代产生文本 token 的生成器,结束时返回 GenerateResult generate(prompt, config=None, on_token=None)
  • 生成文本,可选流式 token 回调
  • 参数:同上 apply_chat_template(messages, tools=None, enable_thinking=False)
  • 将聊天模板应用到多模态会话
  • 参数:
    • messages (List[VlmChatMessage]):多模态会话历史
    • tools (str,可选):工具 JSON 字符串
    • enable_thinking (bool):是否启用思维模式
  • 返回:格式化后的提示词字符串 reset()
  • 重置会话状态并清空 KV 缓存

ASR(自动语音识别)

ASR 类提供语音转文本能力。

初始化

from nexaai import ASR

# 初始化 ASR
asr = ASR.from_(model="model_name_or_path", plugin_id="cpu_gpu", device_id="cpu")

核心方法

transcribe(audio_path, language=None, timestamps=None, beam_size=5)
  • 将音频文件转写为文本
  • 参数:
    • audio_path (str):音频路径
    • language (str,可选):语言代码(“en”、“zh” 或自动)
    • timestamps (str,可选):时间戳格式(“none”、“segment”、“word”)
    • beam_size (int):解码 beam 大小(默认 5)
  • 返回:包含转写文本、置信度、时间戳与性能数据的 TranscribeResult list_supported_languages():返回支持的语言列表 stream_begin(...):开始流式转写(回调、切片、重叠、采样率等参数可配) stream_push_audio(audio_data):推入音频数据 stream_stop(graceful=True):结束流式转写

Embedder(向量嵌入)

Embedder 类提供文本向量化与相似度计算能力。

初始化

from nexaai import Embedder

# 初始化 Embedder
embedder = Embedder.from_(model="model_name_or_path", plugin_id="cpu_gpu")

核心方法

embed(texts=None, input_ids=None, image_paths=None, task_type=None, batch_size=32, normalize=False, normalize_method=None)
  • 为文本、token 或图像生成向量嵌入
  • 参数:支持文本列表、token 序列、图像路径、任务类型、批量大小与归一化
  • 返回:包含嵌入与性能数据的 EmbedResult embedding_dim():返回嵌入维度大小

Reranker(重排)

Reranker 类提供基于查询的文档重排能力。

初始化

from nexaai import Reranker

# 初始化 Reranker
reranker = Reranker.from_(model="model_name_or_path", plugin_id="cpu_gpu")

核心方法

rerank(query, documents, batch_size=32, normalize=False, normalize_method=None)
  • 根据查询对文档进行重排
  • 参数:查询字符串、文档列表、批量大小、归一化选项等
  • 返回:包含分数与性能数据的 RerankResult

CV(计算机视觉)

CV 类提供 OCR 等视觉能力。

初始化

from nexaai import CV

# 初始化 CV 模型
cv = CV.from_(model="model_name_or_path", capabilities=0, plugin_id="cpu_gpu")

核心方法

infer(input_image_path):对图像进行推理,返回 CVResult

Diarize(说话人分离)

Diarize 类提供说话人分离能力。

初始化

from nexaai import Diarize

# 初始化 Diarize
diarize = Diarize.from_(model="model_name_or_path", plugin_id="cpu_gpu", device_id="cpu")

核心方法

infer(audio_path, min_speakers=None, max_speakers=None):对音频执行说话人分段,返回 DiarizeResult

TTS(文本转语音)

TTS 类提供文本转语音能力。

初始化

from nexaai import TTS

# 初始化 TTS
tts = TTS.from_(model="model_name_or_path", plugin_id="cpu_gpu", device_id="cpu")

核心方法

synthesize(text, output_path, voice=None, speed=1.0, seed=-1, sample_rate=22050)
  • 将文本合成语音
  • 返回:SynthesizeResult,包含音频文件路径与元信息 list_available_voices():列出可用的声音

ImageGen(图像生成)

ImageGen 类提供图像生成能力。

初始化

from nexaai import ImageGen, ModelConfig

# 初始化 ImageGen
config = ModelConfig()
imagegen = ImageGen.from_(model="model_name_or_path", config=config, plugin_id="cpu_gpu", device_id="cpu")

核心方法

txt2img(...):根据文本提示生成图像 img2img(...):根据初始图像与提示生成图像

配置类

ModelConfig

通用模型配置。
from nexaai import ModelConfig

config = ModelConfig()

GenerationConfig

文本生成配置。
from nexaai import GenerationConfig

config = GenerationConfig(
    max_tokens=100,
    image_paths=["path/to/image.jpg"],
    audio_paths=["path/to/audio.wav"],
)

消息类

LlmChatMessage

表示 LLM 会话中的一条消息。
from nexaai import LlmChatMessage

message = LlmChatMessage(role="user", content="Hello, how are you?")

VlmChatMessage

表示 VLM 的多模态消息(包含多种内容类型)。
from nexaai import VlmChatMessage, VlmContent

contents = [
    VlmContent(type="text", text="Describe this image"),
    VlmContent(type="image", text="path/to/image.jpg")
]
message = VlmChatMessage(role="user", contents=contents)

VlmContent

表示多模态消息中的一个内容项。
from nexaai import VlmContent