/// ASR transcription resultpublic struct AsrResult: Codable { /// Transcribed text public let transcript: String /// Confidence scores for each unit public let confidences: [Float] /// Timestamp pairs: [start, end] for each unit public let timestamps: [Float]}
public struct AsrOptions: Codable { public let modelPath: String public let language: Language}public enum Language: String, Codable { case en case ch}
public struct ASRStreamConfig { // 时间戳模式 public enum TimestampMode: String { case segment case word case none } // 语言 public var language: Language = .en // 每个分片时长(默认 4.0 秒) public var chunkDuration: Float // 分片重叠时长(默认 3.0 秒) public var overlapDuration: Float // 采样率(默认 16000) public var sampleRate: Int32 // 队列最大分片数(默认 10) public var maxQueueSize: Int32 // 输入缓冲大小(默认 512) public var bufferSize: Int32 // 时间戳模式:"none" | "segment" | "word" public var timestamps: TimestampMode // Beam size(默认 5) public var beamSize: Int32}
public struct EmbeddingConfig { /// batch 大小 public var batchSize: Int32 /// 归一化方式:"l2", "mean" /// `nil` 表示不归一化 public var normalizeMethod: NormalizeMethod?}
public struct GenerationConfig { public var maxTokens: Int32 public var stop: [String] public var nPast: Int32 public var samplerConfig: SamplerConfig public var imagePaths: [String] public var audioPaths: [String] }
public struct SamplerConfig { public var temperature: Float public var topP: Float public var topK: Int32 public var minP: Float public var repetitionPenalty: Float public var presencePenalty: Float public var frequencyPenalty: Float public var seed: Int32 public var grammarPath: String? }
public struct ProfileData: CustomStringConvertible, Codable { public let ttft: Int64 public let promptTime: Int64 public let decodeTime: Int64 public let promptTokens: Int64 public let generatedTokens: Int64 public let audioDuration: Int64 public let prefillSpeed: Double public let decodingSpeed: Double public let realTimeFactor: Double public let stopReason: String}
import NexaSdkimport Foundation// 加载 CPU/GPU 重排模型let repoDir = URL(string: "<path/to/model/dir>")!let reranker = try Reranker(from: repoDir)let query = "What is machine learning?"let documents = [ "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions ", "without being explicitly programmed.", "Machine learning algorithms build mathematical models based on sample data to make predictions or decisions.", "Deep learning is a subset of machine learning that uses neural networks with multiple layers.", "Python is a popular programming language for machine learning and data science.", "The weather today is sunny and warm."]let result = try await reranker.rerank(query, documents: documents)print(result.scores)
public struct RerankConfig { /// batch 大小 public var batchSize: Int32 /// 归一化:"softmax" | "min-max" | "l2";`nil` 表示不归一化 public var normalizeMethod: NormalizeMethod? public enum NormalizeMethod: String, CaseIterable { case softmax case minMax = "min-max" case l2 }}