Skip to content
Snippets Groups Projects
Unverified Commit 506e61e2 authored by wuhongsheng's avatar wuhongsheng Committed by GitHub
Browse files

Merge branch 'open_api' into open-api-fix

parents 651903a6 d6b0941f
No related branches found
No related tags found
No related merge requests found
......@@ -54,7 +54,6 @@ class OpenApiModelHandler(BaseHandler):
logger.info(
f"{self.__class__.__name__}: warmed up! time: {(end - start):.3f} s"
)
def process(self, prompt):
logger.debug("call api language model...")
self.chat.append({"role": self.user_role, "content": prompt})
......@@ -87,3 +86,4 @@ class OpenApiModelHandler(BaseHandler):
generated_text = response.choices[0].message.content
self.chat.append({"role": "assistant", "content": generated_text})
yield generated_text, language_code
from dataclasses import dataclass, field
@dataclass
class OpenApiLanguageModelHandlerArguments:
open_api_model_name: str = field(
# default="HuggingFaceTB/SmolLM-360M-Instruct",
default="deepseek-chat",
metadata={
"help": "The pretrained language model to use. Default is 'microsoft/Phi-3-mini-4k-instruct'."
},
)
open_api_user_role: str = field(
default="user",
metadata={
"help": "Role assigned to the user in the chat context. Default is 'user'."
},
)
open_api_init_chat_role: str = field(
default="system",
metadata={
"help": "Initial role for setting up the chat context. Default is 'system'."
},
)
open_api_init_chat_prompt: str = field(
# default="You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words.",
default="You are a helpful and friendly AI assistant. You are polite, respectful, and aim to provide concise responses of less than 20 words.",
metadata={
"help": "The initial chat prompt to establish context for the language model. Default is 'You are a helpful AI assistant.'"
},
)
open_api_chat_size: int = field(
default=2,
metadata={
"help": "Number of interactions assitant-user to keep for the chat. None for no limitations."
},
)
open_api_api_key: str = field(
default=None,
metadata={
"help": "Is a unique code used to authenticate and authorize access to an API.Default is None"
},
)
open_api_base_url: str = field(
default=None,
metadata={
"help": "Is the root URL for all endpoints of an API, serving as the starting point for constructing API request.Default is Non"
},
)
open_api_stream: bool = field(
default=False,
metadata={
"help": "The stream parameter typically indicates whether data should be transmitted in a continuous flow rather"
" than in a single, complete response, often used for handling large or real-time data.Default is False"
},
)
\ No newline at end of file
......@@ -7,3 +7,4 @@ ChatTTS>=0.1.1
funasr>=1.1.6
modelscope>=1.17.1
deepfilternet>=0.5.6
openai>=1.40.1
\ No newline at end of file
......@@ -9,4 +9,4 @@ ChatTTS>=0.1.1
funasr>=1.1.6
modelscope>=1.17.1
deepfilternet>=0.5.6
openai>=1.40.1
\ No newline at end of file
......@@ -180,6 +180,7 @@ def prepare_all_args(
chat_tts_handler_kwargs,
)
rename_args(whisper_stt_handler_kwargs, "stt")
rename_args(paraformer_stt_handler_kwargs, "paraformer_stt")
rename_args(language_model_handler_kwargs, "lm")
......@@ -224,7 +225,6 @@ def build_pipeline(
spoken_prompt_queue = queues_and_events["spoken_prompt_queue"]
text_prompt_queue = queues_and_events["text_prompt_queue"]
lm_response_queue = queues_and_events["lm_response_queue"]
if module_kwargs.mode == "local":
from connections.local_audio_streamer import LocalAudioStreamer
......@@ -323,6 +323,7 @@ def get_llm_handler(
queue_out=lm_response_queue,
setup_kwargs=vars(open_api_language_model_handler_kwargs),
)
elif module_kwargs.llm == "mlx-lm":
from LLM.mlx_language_model import MLXLanguageModelHandler
return MLXLanguageModelHandler(
......@@ -331,6 +332,7 @@ def get_llm_handler(
queue_out=lm_response_queue,
setup_kwargs=vars(mlx_language_model_handler_kwargs),
)
else:
raise ValueError("The LLM should be either transformers or mlx-lm")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment