barunsaha commited on
Commit
3179f23
·
1 Parent(s): db728bc

Skip API key validation for Ollama and update version

Browse files
Files changed (4) hide show
  1. README.md +1 -1
  2. app.py +3 -3
  3. helpers/llm_helper.py +6 -4
  4. requirements.txt +1 -1
README.md CHANGED
@@ -85,7 +85,7 @@ Visit the respective websites to obtain the API keys.
85
 
86
  SlideDeck AI allows the use of offline LLMs to generate the contents of the slide decks. This is typically suitable for individuals or organizations who would like to use self-hosted LLMs for privacy concerns, for example.
87
 
88
- Offline LLMs are made available via Ollama. Therefore, a pre-requisite here is to have [Ollama installed](https://ollama.com/download) on the system and the desired [LLM](https://ollama.com/search) pulled locally.
89
 
90
  In addition, the `RUN_IN_OFFLINE_MODE` environment variable needs to be set to `True` to enable the offline mode. This, for example, can be done using a `.env` file or from the terminal. The typical steps to use SlideDeck AI in offline mode (in a `bash` shell) are as follows:
91
 
 
85
 
86
  SlideDeck AI allows the use of offline LLMs to generate the contents of the slide decks. This is typically suitable for individuals or organizations who would like to use self-hosted LLMs for privacy concerns, for example.
87
 
88
+ Offline LLMs are made available via Ollama. Therefore, a pre-requisite here is to have [Ollama installed](https://ollama.com/download) on the system and the desired [LLM](https://ollama.com/search) pulled locally. You should choose a model to use based on your hardware capacity. However, if you have no GPU, [gemma3:1b](https://ollama.com/library/gemma3:1b) can be a suitable model to run only on CPU.
89
 
90
  In addition, the `RUN_IN_OFFLINE_MODE` environment variable needs to be set to `True` to enable the offline mode. This, for example, can be done using a `.env` file or from the terminal. The typical steps to use SlideDeck AI in offline mode (in a `bash` shell) are as follows:
91
 
app.py CHANGED
@@ -159,11 +159,11 @@ with st.sidebar:
159
 
160
  if RUN_IN_OFFLINE_MODE:
161
  llm_provider_to_use = st.text_input(
162
- label='2: Enter Ollama model name to use (e.g., mistral:v0.2):',
163
  help=(
164
  'Specify a correct, locally available LLM, found by running `ollama list`, for'
165
- ' example `mistral:v0.2` and `mistral-nemo:latest`. Having an Ollama-compatible'
166
- ' and supported GPU is strongly recommended.'
167
  )
168
  )
169
  api_key_token: str = ''
 
159
 
160
  if RUN_IN_OFFLINE_MODE:
161
  llm_provider_to_use = st.text_input(
162
+ label='2: Enter Ollama model name to use (e.g., gemma3:1b):',
163
  help=(
164
  'Specify a correct, locally available LLM, found by running `ollama list`, for'
165
+ ' example, `gemma3:1b`, `mistral:v0.2`, and `mistral-nemo:latest`. Having an'
166
+ ' Ollama-compatible and supported GPU is strongly recommended.'
167
  )
168
  )
169
  api_key_token: str = ''
helpers/llm_helper.py CHANGED
@@ -95,11 +95,13 @@ def is_valid_llm_provider_model(
95
  if not provider or not model or provider not in GlobalConfig.VALID_PROVIDERS:
96
  return False
97
 
98
- if not api_key:
99
- return False
 
 
100
 
101
- if api_key and API_KEY_REGEX.match(api_key) is None:
102
- return False
103
 
104
  if provider == GlobalConfig.PROVIDER_AZURE_OPENAI:
105
  valid_url = urllib3.util.parse_url(azure_endpoint_url)
 
95
  if not provider or not model or provider not in GlobalConfig.VALID_PROVIDERS:
96
  return False
97
 
98
+ if provider != GlobalConfig.PROVIDER_OLLAMA:
99
+ # No API key is required for offline Ollama models
100
+ if not api_key:
101
+ return False
102
 
103
+ if api_key and API_KEY_REGEX.match(api_key) is None:
104
+ return False
105
 
106
  if provider == GlobalConfig.PROVIDER_AZURE_OPENAI:
107
  valid_url = urllib3.util.parse_url(azure_endpoint_url)
requirements.txt CHANGED
@@ -37,4 +37,4 @@ anyio==4.4.0
37
 
38
  httpx~=0.27.2
39
  huggingface-hub~=0.24.5
40
- ollama~=0.4.7
 
37
 
38
  httpx~=0.27.2
39
  huggingface-hub~=0.24.5
40
+ ollama~=0.5.1