|
|
|
from langchain_openai import ChatOpenAI |
|
from langchain_anthropic import ChatAnthropic |
|
from langchain_google_genai import ChatGoogleGenerativeAI |
|
from langchain_groq import ChatGroq |
|
from langchain_community.chat_models import ChatOllama |
|
from langchain_core.runnables import ConfigurableField |
|
from langchain.callbacks.base import BaseCallbackHandler |
|
|
|
|
|
class StreamCallback(BaseCallbackHandler): |
|
def on_llm_new_token(self, token: str, **kwargs): |
|
|
|
pass |
|
|
|
|
|
def get_llm(streaming=True): |
|
return ChatOpenAI( |
|
model="gpt-4o", |
|
temperature=0, |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
).configurable_alternatives( |
|
ConfigurableField(id="llm"), |
|
default_key="gpt_4o", |
|
claude_3_5_sonnet=ChatAnthropic( |
|
model="claude-3-5-sonnet-20240620", |
|
temperature=0, |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
gpt_3_5_turbo=ChatOpenAI( |
|
model="gpt-3.5-turbo-0125", |
|
temperature=0, |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
gemini_1_5_flash=ChatGoogleGenerativeAI( |
|
model="gemini-1.5-flash", |
|
temperature=0, |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
llama3_70b=ChatGroq( |
|
model_name="llama3-70b-8192", |
|
temperature=0, |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
eeve=ChatOllama( |
|
model="EEVE-Korean-10.8B", |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
gemma2=ChatOllama( |
|
model="gemma2", |
|
streaming=streaming, |
|
callbacks=[StreamCallback()], |
|
), |
|
) |
|
|