dboa9 commited on
Commit
d68d4dc
·
1 Parent(s): 22a0d80

Update core code, compliance, ui, legal emails

Browse files
Files changed (4) hide show
  1. Dockerfile +5 -11
  2. app.py +17 -25
  3. requirements.txt +2 -2
  4. start.sh +6 -1
Dockerfile CHANGED
@@ -31,23 +31,17 @@ RUN npm install -g openclaw@latest \
31
  && (command -v openclaw || true)
32
 
33
  # Install Ollama AS ROOT - pinned version, force amd64
34
- # Using pinned version URL to avoid redirect issues during Docker build
35
- # Mark as OPTIONAL - app works without it via HF Inference API fallback
36
  RUN echo "Downloading Ollama v0.15.2 (amd64)..." && \
37
  curl -fSL --retry 3 --retry-delay 10 --max-time 300 \
38
  "https://github.com/ollama/ollama/releases/download/v0.15.2/ollama-linux-amd64" \
39
  -o /usr/local/bin/ollama && \
40
  chmod +x /usr/local/bin/ollama && \
41
- OLLAMA_SIZE=$(stat -c%s /usr/local/bin/ollama 2>/dev/null || echo 0) && \
42
  echo "Ollama binary: $(file /usr/local/bin/ollama)" && \
43
- echo "Size: ${OLLAMA_SIZE} bytes" && \
44
- if [ "$OLLAMA_SIZE" -lt 1000000 ]; then \
45
- echo "WARNING: Ollama binary too small (${OLLAMA_SIZE} bytes) likely truncated download"; \
46
- rm -f /usr/local/bin/ollama; \
47
- else \
48
- echo "OK: Ollama binary looks good"; \
49
- fi \
50
- || echo "WARNING: Ollama download failed - will use HF Inference API only"
51
 
52
  # Create HF-required user (uid 1000)
53
  RUN useradd -m -u 1000 user
 
31
  && (command -v openclaw || true)
32
 
33
  # Install Ollama AS ROOT - pinned version, force amd64
34
+ # REQUIRED - build fails if download fails or binary is corrupt
 
35
  RUN echo "Downloading Ollama v0.15.2 (amd64)..." && \
36
  curl -fSL --retry 3 --retry-delay 10 --max-time 300 \
37
  "https://github.com/ollama/ollama/releases/download/v0.15.2/ollama-linux-amd64" \
38
  -o /usr/local/bin/ollama && \
39
  chmod +x /usr/local/bin/ollama && \
 
40
  echo "Ollama binary: $(file /usr/local/bin/ollama)" && \
41
+ echo "Size: $(stat -c%s /usr/local/bin/ollama) bytes" && \
42
+ file /usr/local/bin/ollama | grep -q "ELF" || (echo "FATAL: Ollama binary is not ELF" && exit 1) && \
43
+ test $(stat -c%s /usr/local/bin/ollama) -gt 1000000 || (echo "FATAL: Ollama binary too small" && exit 1) && \
44
+ echo "OK: Ollama verified"
 
 
 
 
45
 
46
  # Create HF-required user (uid 1000)
47
  RUN useradd -m -u 1000 user
app.py CHANGED
@@ -160,7 +160,9 @@ def generate_with_ollama(model: str, prompt: str) -> Optional[str]:
160
 
161
 
162
  def generate_with_hf_api(prompt: str, model: str = None) -> Optional[str]:
163
- """Generate text using HuggingFace Inference API (free, no GPU needed)."""
 
 
164
  try:
165
  from huggingface_hub import InferenceClient
166
 
@@ -169,40 +171,30 @@ def generate_with_hf_api(prompt: str, model: str = None) -> Optional[str]:
169
 
170
  client = InferenceClient(token=token)
171
 
172
- # Use text_generation for instruct models
173
- response = client.text_generation(
174
- prompt=prompt,
175
  model=hf_model,
176
- max_new_tokens=1024,
 
 
 
 
177
  temperature=0.7,
178
- do_sample=True,
179
  )
 
 
 
 
180
 
181
- if response:
182
- return response.strip()
183
-
184
- logger.warning("[HF_API] Empty response")
185
  return None
186
 
187
  except ImportError:
188
  logger.error("[HF_API] huggingface_hub not installed")
189
  return None
190
  except Exception as e:
191
- logger.warning(f"[HF_API] Error: {e}")
192
- # Try chat completion as fallback
193
- try:
194
- from huggingface_hub import InferenceClient
195
- client = InferenceClient(token=HF_TOKEN if HF_TOKEN else None)
196
- response = client.chat_completion(
197
- model=model or HF_MODEL,
198
- messages=[{"role": "user", "content": prompt}],
199
- max_tokens=1024,
200
- temperature=0.7,
201
- )
202
- if response and response.choices:
203
- return response.choices[0].message.content.strip()
204
- except Exception as e2:
205
- logger.warning(f"[HF_API] Chat completion also failed: {e2}")
206
  return None
207
 
208
 
 
160
 
161
 
162
  def generate_with_hf_api(prompt: str, model: str = None) -> Optional[str]:
163
+ """Generate text using HuggingFace Inference API (free, no GPU needed).
164
+ Uses chat_completion (conversational) — the only supported task for Qwen2.5-7B-Instruct.
165
+ """
166
  try:
167
  from huggingface_hub import InferenceClient
168
 
 
171
 
172
  client = InferenceClient(token=token)
173
 
174
+ # Use chat_completion Qwen2.5-7B-Instruct is conversational only
175
+ # (text_generation fails: "Supported task: conversational")
176
+ response = client.chat_completion(
177
  model=hf_model,
178
+ messages=[
179
+ {"role": "system", "content": "You are a helpful legal assistant."},
180
+ {"role": "user", "content": prompt},
181
+ ],
182
+ max_tokens=1024,
183
  temperature=0.7,
 
184
  )
185
+ if response and response.choices:
186
+ text = response.choices[0].message.content
187
+ if text:
188
+ return text.strip()
189
 
190
+ logger.warning("[HF_API] Empty response from chat_completion")
 
 
 
191
  return None
192
 
193
  except ImportError:
194
  logger.error("[HF_API] huggingface_hub not installed")
195
  return None
196
  except Exception as e:
197
+ logger.warning(f"[HF_API] chat_completion error: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  return None
199
 
200
 
requirements.txt CHANGED
@@ -3,6 +3,6 @@ fastapi>=0.104.0
3
  uvicorn>=0.24.0
4
  pydantic>=2.0.0
5
  python-multipart>=0.0.6
6
- huggingface_hub>=0.20.0
7
  requests>=2.31.0
8
- httpx>=0.25.0
 
3
  uvicorn>=0.24.0
4
  pydantic>=2.0.0
5
  python-multipart>=0.0.6
6
+ huggingface_hub>=0.25.0
7
  requests>=2.31.0
8
+ httpx>=0.25.0
start.sh CHANGED
@@ -5,10 +5,15 @@
5
  # v6: Ollama is optional - HF Inference API provides fallback
6
 
7
  echo "============================================================"
8
- echo " Moltbot Hybrid Engine v6.0.0 - Starting..."
9
  echo "============================================================"
10
  echo " Timestamp: $(date '+%Y-%m-%d %H:%M:%S')"
11
  echo " User: $(whoami) | Home: $HOME"
 
 
 
 
 
12
  echo ""
13
 
14
  # Optimize for HF Spaces Free tier (2 CPU, 16GB RAM)
 
5
  # v6: Ollama is optional - HF Inference API provides fallback
6
 
7
  echo "============================================================"
8
+ echo " Moltbot Hybrid Engine v7.1.0 - Starting..."
9
  echo "============================================================"
10
  echo " Timestamp: $(date '+%Y-%m-%d %H:%M:%S')"
11
  echo " User: $(whoami) | Home: $HOME"
12
+ echo " BUILD_MARKER=2026-03-02-fix-hf-ollama-openclaw"
13
+ echo ""
14
+ echo "[DEBUG] Ollama check: $(command -v ollama 2>/dev/null || echo MISSING)"
15
+ echo "[DEBUG] /usr/local/bin/ollama: $(ls -lh /usr/local/bin/ollama 2>/dev/null || echo NOT_FOUND)"
16
+ echo "[DEBUG] Binary type: $(file /usr/local/bin/ollama 2>/dev/null || echo N/A)"
17
  echo ""
18
 
19
  # Optimize for HF Spaces Free tier (2 CPU, 16GB RAM)