|
from langchain_community.chat_models import ChatOpenAI |
|
from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline |
|
from transformers import AutoTokenizer, TextStreamer |
|
from langchain_community.llms import LlamaCpp |
|
import torch |
|
import transformers |
|
import os |
|
from langchain.callbacks.manager import CallbackManager |
|
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler |
|
|
|
|
|
class ChatModelLoader: |
|
def __init__(self, config): |
|
self.config = config |
|
self.huggingface_token = os.getenv("HUGGINGFACEHUB_API_TOKEN") |
|
|
|
def load_chat_model(self): |
|
if self.config["llm_params"]["llm_loader"] == "openai": |
|
llm = ChatOpenAI( |
|
model_name=self.config["llm_params"]["openai_params"]["model"] |
|
) |
|
elif self.config["llm_params"]["llm_loader"] == "local_llm": |
|
n_batch = 512 |
|
model_path = self.config["llm_params"]["local_llm_params"]["model"] |
|
llm = LlamaCpp( |
|
model_path=model_path, |
|
n_batch=n_batch, |
|
n_ctx=2048, |
|
f16_kv=True, |
|
verbose=True, |
|
n_threads=2, |
|
temperature=self.config["llm_params"]["local_llm_params"][ |
|
"temperature" |
|
], |
|
) |
|
else: |
|
raise ValueError("Invalid LLM Loader") |
|
return llm |
|
|