mahynski commited on
Commit
09eae4c
·
1 Parent(s): 365f008

added mistral

Browse files
Files changed (2) hide show
  1. app.py +31 -14
  2. requirements.txt +2 -1
app.py CHANGED
@@ -11,6 +11,7 @@ from llama_index.llms.openai import OpenAI
11
 
12
  from llama_index.embeddings.openai import OpenAIEmbedding
13
  from llama_index.embeddings.huggingface import HuggingFaceEmbedding, HuggingFaceInferenceAPIEmbedding
 
14
 
15
  from llama_index.core import (
16
  VectorStoreIndex,
@@ -42,7 +43,7 @@ def main():
42
  elif provider == 'huggingface':
43
  llm_list = []
44
  elif provider == 'mistralai':
45
- llm_list =[]
46
  elif provider == 'openai':
47
  llm_list = ['gpt-3.5-turbo', 'gpt-4', 'gpt-4-turbo', 'gpt-4o', 'gpt-4o-mini']
48
  else:
@@ -91,25 +92,14 @@ def main():
91
  # Global tokenization needs to be consistent with LLM for token counting
92
  # https://docs.llamaindex.ai/en/stable/module_guides/models/llms/
93
  if llm_key is not None:
94
- if provider == 'openai':
95
- os.environ["OPENAI_API_KEY"] = str(llm_key)
96
- Settings.llm = OpenAI(
97
- model=llm_name,
98
- temperature=temperature,
99
- # max_tokens=MAX_OUTPUT_TOKENS
100
- )
101
- Settings.tokenizer = tiktoken.encoding_for_model(llm_name).encode
102
- Settings.num_output = MAX_OUTPUT_TOKENS
103
- Settings.embed_model = OpenAIEmbedding()
104
- Settings.context_window = 4096 # max possible
105
- elif provider == 'huggingface':
106
  if llm_name is not None and embed_name is not None:
107
  os.environ['HFTOKEN'] = str(llm_key)
108
  Settings.llm = HuggingFaceInferenceAPI(
109
  model_name=llm_name,
110
  token=os.environ.get("HFTOKEN"),
111
  temperature=temperature,
112
- # max_tokens=MAX_OUTPUT_TOKENS
113
  )
114
  Settings.tokenizer = AutoTokenizer.from_pretrained(
115
  llm_name,
@@ -120,6 +110,33 @@ def main():
120
  model_name=embed_name
121
  )
122
  Settings.context_window = 4096
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  else:
124
  raise NotImplementedError(f"{provider} is not supported yet")
125
 
 
11
 
12
  from llama_index.embeddings.openai import OpenAIEmbedding
13
  from llama_index.embeddings.huggingface import HuggingFaceEmbedding, HuggingFaceInferenceAPIEmbedding
14
+ from llama_index.embeddings.mistralai import MistralAIEmbedding
15
 
16
  from llama_index.core import (
17
  VectorStoreIndex,
 
43
  elif provider == 'huggingface':
44
  llm_list = []
45
  elif provider == 'mistralai':
46
+ llm_list = ["mistral-small-latest", "mistral-medium-latest", "mistral-large-latest", "open-mistral-nemo"]
47
  elif provider == 'openai':
48
  llm_list = ['gpt-3.5-turbo', 'gpt-4', 'gpt-4-turbo', 'gpt-4o', 'gpt-4o-mini']
49
  else:
 
92
  # Global tokenization needs to be consistent with LLM for token counting
93
  # https://docs.llamaindex.ai/en/stable/module_guides/models/llms/
94
  if llm_key is not None:
95
+ if provider == 'huggingface':
 
 
 
 
 
 
 
 
 
 
 
96
  if llm_name is not None and embed_name is not None:
97
  os.environ['HFTOKEN'] = str(llm_key)
98
  Settings.llm = HuggingFaceInferenceAPI(
99
  model_name=llm_name,
100
  token=os.environ.get("HFTOKEN"),
101
  temperature=temperature,
102
+ max_tokens=MAX_OUTPUT_TOKENS
103
  )
104
  Settings.tokenizer = AutoTokenizer.from_pretrained(
105
  llm_name,
 
110
  model_name=embed_name
111
  )
112
  Settings.context_window = 4096
113
+ elif provider == 'mistralai':
114
+ os.environ['MISTRAL_API_KEY'] = str(llm_key)
115
+ Settings.llm = MistralAI(
116
+ model=llm_name,
117
+ temperature=temperature,
118
+ max_tokens=MAX_OUTPUT_TOKENS,
119
+ random_seed=42,
120
+ safe_mode=True
121
+ )
122
+ # Settings.tokenizer = tiktoken.encoding_for_model(llm_name).encode
123
+ Settings.num_output = MAX_OUTPUT_TOKENS
124
+ Settings.embed_model = MistralAIEmbedding(
125
+ model_name="mistral-embed",
126
+ api_key=os.environ.get("MISTRAL_API_KEY")
127
+ )
128
+ Settings.context_window = 4096 # max possible
129
+ elif provider == 'openai':
130
+ os.environ["OPENAI_API_KEY"] = str(llm_key)
131
+ Settings.llm = OpenAI(
132
+ model=llm_name,
133
+ temperature=temperature,
134
+ max_tokens=MAX_OUTPUT_TOKENS
135
+ )
136
+ Settings.tokenizer = tiktoken.encoding_for_model(llm_name).encode
137
+ Settings.num_output = MAX_OUTPUT_TOKENS
138
+ Settings.embed_model = OpenAIEmbedding()
139
+ Settings.context_window = 4096 # max possible
140
  else:
141
  raise NotImplementedError(f"{provider} is not supported yet")
142
 
requirements.txt CHANGED
@@ -10,4 +10,5 @@ tiktoken
10
  llama-parse
11
  llama-index-callbacks-langfuse
12
  llama-index-embeddings-huggingface
13
- llama-index-embeddings-openai
 
 
10
  llama-parse
11
  llama-index-callbacks-langfuse
12
  llama-index-embeddings-huggingface
13
+ llama-index-embeddings-openai
14
+ llama-index-embeddings-mistralai