|
""" |
|
Transformation logic from OpenAI /v1/embeddings format to LM Studio's `/v1/embeddings` format. |
|
|
|
Why separate file? Make it easy to see how transformation works |
|
|
|
Docs - https://lmstudio.ai/docs/basics/server |
|
""" |
|
|
|
import types |
|
from typing import List |
|
|
|
|
|
class LmStudioEmbeddingConfig: |
|
""" |
|
Reference: https://lmstudio.ai/docs/basics/server |
|
""" |
|
|
|
def __init__( |
|
self, |
|
) -> None: |
|
locals_ = locals() |
|
for key, value in locals_.items(): |
|
if key != "self" and value is not None: |
|
setattr(self.__class__, key, value) |
|
|
|
@classmethod |
|
def get_config(cls): |
|
return { |
|
k: v |
|
for k, v in cls.__dict__.items() |
|
if not k.startswith("__") |
|
and not isinstance( |
|
v, |
|
( |
|
types.FunctionType, |
|
types.BuiltinFunctionType, |
|
classmethod, |
|
staticmethod, |
|
), |
|
) |
|
and v is not None |
|
} |
|
|
|
def get_supported_openai_params(self) -> List[str]: |
|
return [] |
|
|
|
def map_openai_params( |
|
self, non_default_params: dict, optional_params: dict |
|
) -> dict: |
|
return optional_params |
|
|