| |
| 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()], |
| ), |
| ) |
|
|