-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathllm_factory.py
More file actions
85 lines (70 loc) · 2.8 KB
/
llm_factory.py
File metadata and controls
85 lines (70 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import os
from langchain_openai import AzureChatOpenAI
from langchain_openai import AzureOpenAIEmbeddings
from langchain_community.llms import Ollama
from langchain_community.embeddings import OllamaEmbeddings
from langchain_openai import ChatOpenAI
from langchain_openai import OpenAIEmbeddings
from langchain_google_genai import ChatGoogleGenerativeAI
from dotenv import load_dotenv
load_dotenv()
class AzureLLMs:
def __init__(self, temperature: int = 0):
self._azure_llm = AzureChatOpenAI(
openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"],
azure_deployment=os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"],
temperature=temperature,
max_tokens=None,
)
self._azure_embedding = AzureOpenAIEmbeddings(azure_deployment=os.environ['AZURE_OPENAI_EMBEDDING_1536_DEPLOYMENT'],
openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"],
model=os.environ["AZURE_OPENAI_EMBEDDING_1536_MODEL"])
def get_llm(self):
return self._azure_llm
def get_embedding(self):
return self._azure_embedding
class OllamaLLMs:
def __init__(self):
self._ollama_llm = Ollama(
model=os.environ['OLLAMA_MODEL'], # Any of the available models listed in the API docs
base_url=os.environ['OLLAMA_BASE_URL'],
headers={
'X-API-Key': os.environ['OLLAMA_API_KEY'],
},
)
self._ollama_embedding = OllamaEmbeddings(
model='nomic-embed-text:137m-v1.5-fp16',
base_url=os.environ['OLLAMA_BASE_URL'],
headers={
'X-API-Key': os.environ['OLLAMA_API_KEY'],
},
show_progress=True
)
def get_llm(self):
return self._ollama_llm
def get_embedding(self):
return self._ollama_embedding
class OpenAILLMs:
def __init__(self, temperature: int = 0):
self._openai_llm = ChatOpenAI(
model=os.environ['OPENAI_MODEL'],
temperature=temperature,
api_key=os.environ["OPENAI_API_KEY"],
)
self._openai_embedding = OpenAIEmbeddings(
model='text-embedding-ada-002',
api_key=os.environ['OPENAI_API_KEY'],
)
def get_llm(self):
return self._openai_llm
def get_embedding(self):
return self._openai_embedding
class GoogleAILLMs:
def __init__(self, temperature: int = 0):
self._google_llm = ChatGoogleGenerativeAI(
model=os.environ['GOOGLE_AI_MODEL'],
temperature=temperature,
google_api_key=os.environ['GOOGLE_AI_API_KEY'],
)
def get_llm(self):
return self._google_llm