| @@ -1,4 +1,4 @@ | |||
| from typing import Optional, List, Union | |||
| from typing import Optional, List, Union, Tuple | |||
| from langchain.callbacks import CallbackManager | |||
| from langchain.chat_models.base import BaseChatModel | |||
| @@ -97,7 +97,7 @@ class Completion: | |||
| ) | |||
| # get llm prompt | |||
| prompt = cls.get_main_llm_prompt( | |||
| prompt, stop_words = cls.get_main_llm_prompt( | |||
| mode=mode, | |||
| llm=final_llm, | |||
| pre_prompt=app_model_config.pre_prompt, | |||
| @@ -115,7 +115,7 @@ class Completion: | |||
| mode=mode | |||
| ) | |||
| response = final_llm.generate([prompt]) | |||
| response = final_llm.generate([prompt], stop_words) | |||
| return response | |||
| @@ -123,7 +123,7 @@ class Completion: | |||
| def get_main_llm_prompt(cls, mode: str, llm: BaseLanguageModel, pre_prompt: str, query: str, inputs: dict, | |||
| chain_output: Optional[str], | |||
| memory: Optional[ReadOnlyConversationTokenDBBufferSharedMemory]) -> \ | |||
| Union[str | List[BaseMessage]]: | |||
| Tuple[Union[str | List[BaseMessage]], Optional[List[str]]]: | |||
| # disable template string in query | |||
| query_params = OutLinePromptTemplate.from_template(template=query).input_variables | |||
| if query_params: | |||
| @@ -165,9 +165,9 @@ And answer according to the language of the user's question. | |||
| if isinstance(llm, BaseChatModel): | |||
| # use chat llm as completion model | |||
| return [HumanMessage(content=prompt_content)] | |||
| return [HumanMessage(content=prompt_content)], None | |||
| else: | |||
| return prompt_content | |||
| return prompt_content, None | |||
| else: | |||
| messages: List[BaseMessage] = [] | |||
| @@ -236,7 +236,7 @@ And answer according to the language of the user's question. | |||
| messages.append(human_message) | |||
| return messages | |||
| return messages, ['\nHuman:'] | |||
| @classmethod | |||
| def get_llm_callback_manager(cls, llm: Union[StreamableOpenAI, StreamableChatOpenAI], | |||
| @@ -323,7 +323,7 @@ And answer according to the language of the user's question. | |||
| ) | |||
| # get llm prompt | |||
| original_prompt = cls.get_main_llm_prompt( | |||
| original_prompt, _ = cls.get_main_llm_prompt( | |||
| mode="completion", | |||
| llm=llm, | |||
| pre_prompt=pre_prompt, | |||