{"version":3,"sources":["../../../src/adapters/ibm-vllm/llm.ts"],"names":["isGrpcServiceError","err","Error","constructor","name","code","IBMvLLMOutput","BaseLLMOutput","text","meta","register","merge","other","assign","getTextContent","toString","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","IBMvLLM","LLM","emitter","Emitter","namespace","creator","client","parameters","modelId","executionOptions","cache","Client","response","modelInfo","model_id","tokenLimit","max_sequence_length","embed","input","chunkSize","signal","options","results","Promise","all","chunk","map","texts","truncate_input_tokens","embeddings","vectors","vector","embedding","data","values","LLMError","length","flat","tokenize","requests","output","responses","at","context","tokens","tokensCount","token_count","_transformError","_generate","run","generate","params","_prepareParameters","rest","_stream","stream","generateStream","request","typedChunk","error","FrameworkError","isRetryable","includes","overrides","guided","omitUndefined","decoding","guidedOverride","choice","choices","grammar","json","json_schema","isString","JSON","stringify","regex","isEmpty","NotImplementedError","keys","join"],"mappings":"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","file":"llm.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AsyncStream,\n  BaseLLMOutput,\n  BaseLLMTokenizeOutput,\n  EmbeddingOptions,\n  EmbeddingOutput,\n  ExecutionOptions,\n  GenerateOptions,\n  GuidedOptions,\n  LLMCache,\n  LLMError,\n  LLMMeta,\n} from \"@/llms/base.js\";\nimport { chunk, isEmpty, isString } from \"remeda\";\nimport type {\n  DecodingParameters,\n  SingleGenerationRequest,\n  EmbeddingTasksRequest,\n} from \"@/adapters/ibm-vllm/types.js\";\nimport { LLM, LLMEvents, LLMInput } from \"@/llms/llm.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GenerationResponse__Output } from \"@/adapters/ibm-vllm/types.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { FrameworkError, NotImplementedError } from \"@/errors.js\";\nimport { assign, omitUndefined } from \"@/internals/helpers/object.js\";\nimport { ServiceError } from \"@grpc/grpc-js\";\nimport { Client } from \"@/adapters/ibm-vllm/client.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { BatchedGenerationRequest } from \"./types.js\";\nimport { OmitPrivateKeys } from \"@/internals/types.js\";\n\nfunction isGrpcServiceError(err: unknown): err is ServiceError {\n  return (\n    err instanceof Error &&\n    err.constructor.name === \"Error\" &&\n    \"code\" in err &&\n    typeof err.code === \"number\"\n  );\n}\n\nexport class IBMvLLMOutput extends BaseLLMOutput {\n  constructor(\n    public text: string,\n    public readonly meta: Record<string, any>,\n  ) {\n    super();\n  }\n\n  static {\n    this.register();\n  }\n\n  merge(other: IBMvLLMOutput): void {\n    this.text += other.text;\n    assign(this.meta, other.meta);\n  }\n\n  getTextContent(): string {\n    return this.text;\n  }\n\n  toString(): string {\n    return this.getTextContent();\n  }\n\n  createSnapshot() {\n    return {\n      text: this.text,\n      meta: shallowCopy(this.meta),\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n\nexport interface IBMvLLMInput {\n  client?: Client;\n  modelId: string;\n  parameters?: IBMvLLMParameters;\n  executionOptions?: ExecutionOptions;\n  cache?: LLMCache<IBMvLLMOutput>;\n}\n\nexport type IBMvLLMParameters = NonNullable<\n  BatchedGenerationRequest[\"params\"] & SingleGenerationRequest[\"params\"]\n>;\n\nexport interface IBMvLLMGenerateOptions extends GenerateOptions {}\n\nexport interface IBMvLLMEmbeddingOptions\n  extends EmbeddingOptions,\n    Omit<OmitPrivateKeys<EmbeddingTasksRequest>, \"texts\"> {\n  chunkSize?: number;\n}\n\nexport type IBMvLLMEvents = LLMEvents<IBMvLLMOutput>;\n\nexport class IBMvLLM extends LLM<IBMvLLMOutput, IBMvLLMGenerateOptions> {\n  public readonly emitter = new Emitter<IBMvLLMEvents>({\n    namespace: [\"ibm_vllm\", \"llm\"],\n    creator: this,\n  });\n\n  public readonly client: Client;\n  public readonly parameters: Partial<IBMvLLMParameters>;\n\n  constructor({ client, modelId, parameters = {}, executionOptions, cache }: IBMvLLMInput) {\n    super(modelId, executionOptions, cache);\n    this.client = client ?? new Client();\n    this.parameters = parameters ?? {};\n  }\n\n  static {\n    this.register();\n  }\n\n  async meta(): Promise<LLMMeta> {\n    const response = await this.client.modelInfo({ model_id: this.modelId });\n    return {\n      tokenLimit: response.max_sequence_length,\n    };\n  }\n\n  async embed(\n    input: LLMInput[],\n    { chunkSize, signal, ...options }: IBMvLLMEmbeddingOptions = {},\n  ): Promise<EmbeddingOutput> {\n    const results = await Promise.all(\n      chunk(input, chunkSize ?? 100).map(async (texts) => {\n        const response = await this.client.embed(\n          {\n            model_id: this.modelId,\n            truncate_input_tokens: options?.truncate_input_tokens ?? 512,\n            texts,\n          },\n          {\n            signal,\n          },\n        );\n        const embeddings = response.results?.vectors.map((vector) => {\n          const embedding = vector[vector.data]?.values;\n          if (!embedding) {\n            throw new LLMError(\"Missing embedding\");\n          }\n          return embedding;\n        });\n        if (embeddings?.length !== texts.length) {\n          throw new LLMError(\"Missing embedding\");\n        }\n        return embeddings;\n      }),\n    );\n    return { embeddings: results.flat() };\n  }\n\n  async tokenize(input: LLMInput): Promise<BaseLLMTokenizeOutput> {\n    try {\n      const response = await this.client.tokenize({\n        model_id: this.modelId,\n        requests: [{ text: input }],\n      });\n      const output = response.responses.at(0);\n      if (!output) {\n        throw new LLMError(\"Missing output\", [], { context: { response } });\n      }\n      return {\n        tokens: output.tokens,\n        tokensCount: output.token_count,\n      };\n    } catch (err) {\n      throw this._transformError(err);\n    }\n  }\n\n  protected async _generate(\n    input: LLMInput,\n    options: IBMvLLMGenerateOptions | undefined,\n    run: GetRunContext<this>,\n  ): Promise<IBMvLLMOutput> {\n    try {\n      const response = await this.client.generate(\n        {\n          model_id: this.modelId,\n          requests: [{ text: input }],\n          params: this._prepareParameters(options),\n        },\n        { signal: run.signal },\n      );\n      const output = response.responses.at(0);\n      if (!output) {\n        throw new LLMError(\"Missing output\", [], { context: { response } });\n      }\n\n      const { text, ...rest } = output;\n      return new IBMvLLMOutput(text, rest);\n    } catch (err) {\n      throw this._transformError(err);\n    }\n  }\n\n  protected async *_stream(\n    input: string,\n    options: IBMvLLMGenerateOptions | undefined,\n    run: GetRunContext<typeof this>,\n  ): AsyncStream<IBMvLLMOutput> {\n    try {\n      const stream = await this.client.generateStream(\n        {\n          model_id: this.modelId,\n          request: { text: input },\n          params: this._prepareParameters(options),\n        },\n        { signal: run.signal },\n      );\n      for await (const chunk of stream) {\n        const typedChunk = chunk as GenerationResponse__Output;\n        const { text, ...rest } = typedChunk;\n        if (text.length > 0) {\n          yield new IBMvLLMOutput(text, rest);\n        }\n      }\n    } catch (err) {\n      throw this._transformError(err);\n    }\n  }\n\n  createSnapshot() {\n    return {\n      ...super.createSnapshot(),\n      client: this.client,\n      modelId: this.modelId,\n      parameters: shallowCopy(this.parameters),\n      executionOptions: shallowCopy(this.executionOptions),\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    super.loadSnapshot(snapshot);\n    Object.assign(this, snapshot);\n  }\n\n  protected _transformError(error: Error): Error {\n    if (error instanceof FrameworkError) {\n      throw error;\n    }\n    if (isGrpcServiceError(error)) {\n      throw new LLMError(\"LLM has occurred an error!\", [error], {\n        isRetryable: [8, 4, 14].includes(error.code),\n      });\n    }\n    return new LLMError(\"LLM has occurred an error!\", [error]);\n  }\n\n  protected _prepareParameters(overrides?: GenerateOptions): typeof this.parameters {\n    const guided: DecodingParameters = omitUndefined(\n      overrides?.guided ? {} : (this.parameters.decoding ?? {}),\n    );\n    const guidedOverride: GuidedOptions = omitUndefined(overrides?.guided ?? {});\n\n    if (guidedOverride?.choice) {\n      guided.choice = { ...guided.choice, choices: guidedOverride.choice };\n    } else if (guidedOverride?.grammar) {\n      guided.grammar = guidedOverride.grammar;\n    } else if (guidedOverride?.json) {\n      guided.json_schema = isString(guidedOverride.json)\n        ? guidedOverride.json\n        : JSON.stringify(guidedOverride.json);\n    } else if (guidedOverride?.regex) {\n      guided.regex = guidedOverride.regex;\n    } else if (!isEmpty(guidedOverride ?? {})) {\n      throw new NotImplementedError(\n        `Following types ${Object.keys(overrides!.guided!).join(\",\")}\" for the constraint decoding are not supported!`,\n      );\n    }\n\n    return {\n      ...this.parameters,\n      decoding: guided,\n    };\n  }\n}\n"]}