Compare commits
7
Commits
api/v1.0.0
...
9612c7af05
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9612c7af05 | ||
|
|
9d58df85f3 | ||
|
|
3de96fe070 | ||
|
|
e2acb7de39 | ||
|
|
5998571890 | ||
|
|
6ac1d15591 | ||
|
|
22af23827d |
@@ -6,7 +6,7 @@ on:
|
||||
- 'api/v*'
|
||||
|
||||
env:
|
||||
IMAGE_NAME: git.schweitz.internal/jpmschweitzer/webber-api
|
||||
IMAGE_NAME: git.schweitz.net/jpmschweitzer/webber-api
|
||||
|
||||
jobs:
|
||||
release:
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
- name: Login to Gitea Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.schweitz.internal
|
||||
registry: git.schweitz.net
|
||||
username: ${{ secrets.REGISTRY_USER }}
|
||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@ echo $WEBBER_API_URL # Should be http://localhost:8095
|
||||
curl http://192.168.86.149:11434/api/tags
|
||||
|
||||
# Check model is available
|
||||
curl http://192.168.86.149:11434/api/tags | grep mistral-nemo
|
||||
curl http://192.168.86.149:11434/api/tags | grep gemma4
|
||||
```
|
||||
|
||||
### Tests failing
|
||||
|
||||
@@ -107,7 +107,7 @@ This project uses prefixed tags for independent release cycles:
|
||||
## Requirements
|
||||
|
||||
- Python 3.12+
|
||||
- Ollama running with `mistral-nemo:latest` model
|
||||
- Ollama running with `gemma4:e2b` model
|
||||
- Docker (for production deployment)
|
||||
- SearXNG (optional, for web search)
|
||||
|
||||
|
||||
@@ -14,13 +14,16 @@ CORS_ORIGINS=["http://localhost:3000","http://localhost:8080"]
|
||||
|
||||
# LLM - Ollama (tower-of-joy)
|
||||
OLLAMA_URL=http://192.168.86.149:11434
|
||||
OLLAMA_AGENT_MODEL=mistral-nemo-large:latest
|
||||
OLLAMA_AGENT_MODEL=gemma4:e2b
|
||||
OLLAMA_EMBED_MODEL=nomic-embed-text:latest
|
||||
|
||||
# Auth - Tatlock integration (optional)
|
||||
# TATLOCK_API_URL=http://192.168.86.149:8000
|
||||
# TATLOCK_API_URL=http://tatlock:8000
|
||||
# INTERNAL_API_KEY=your-internal-key
|
||||
|
||||
# Web search - SearXNG (container name on docker-dataplane; internal port 8080)
|
||||
# SEARXNG_URL=http://searxng:8080
|
||||
|
||||
# Tool execution
|
||||
TOOL_TIMEOUT_SECONDS=120
|
||||
SANDBOX_ENABLED=true
|
||||
|
||||
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
- Default `OLLAMA_AGENT_MODEL` is now `gemma4:e2b` instead of `mistral-nemo-large:latest`, so a deployment without an explicit override no longer exhausts shared GPU memory
|
||||
|
||||
## [1.0.1] - 2026-07-19
|
||||
|
||||
### Changed
|
||||
- Default `TATLOCK_API_URL` and `SEARXNG_URL` now use docker container names (`http://tatlock:8000`, `http://searxng:8080`) instead of host IP:port, for container-to-container traffic on the docker-dataplane network
|
||||
- CI workflow now pushes Docker images via the `git.schweitz.net` registry route
|
||||
|
||||
## [1.0.0] - 2026-01-15
|
||||
|
||||
### Added
|
||||
|
||||
@@ -13,7 +13,7 @@ Webber is a FastAPI-based agent orchestration service that provides:
|
||||
**Port:** 8086
|
||||
**Runtime:** Python 3.12, FastAPI, Uvicorn
|
||||
**Agent Framework:** PydanticAI
|
||||
**Default LLM:** Ollama with mistral-nemo-large:latest
|
||||
**Default LLM:** Ollama with gemma4:e2b
|
||||
|
||||
---
|
||||
|
||||
@@ -205,9 +205,11 @@ All settings via environment variables or `.env`:
|
||||
| HOST | 0.0.0.0 | Server host |
|
||||
| PORT | 8086 | Server port |
|
||||
| OLLAMA_URL | http://192.168.86.149:11434 | Ollama API URL |
|
||||
| OLLAMA_AGENT_MODEL | mistral-nemo-large:latest | Agent reasoning model |
|
||||
| OLLAMA_AGENT_MODEL | gemma4:e2b | Agent reasoning model |
|
||||
| OLLAMA_EMBED_MODEL | nomic-embed-text:latest | Embedding model |
|
||||
| TATLOCK_API_URL | http://192.168.86.149:8000 | Tatlock auth service |
|
||||
| TATLOCK_API_URL | http://tatlock:8000 | Tatlock auth service |
|
||||
| SEARXNG_URL | http://searxng:8080 | SearXNG web search instance |
|
||||
| SEARXNG_TIMEOUT | 10 | SearXNG request timeout (seconds) |
|
||||
| TOOL_TIMEOUT_SECONDS | 120 | Tool execution timeout |
|
||||
| SANDBOX_ENABLED | true | Enable sandboxed execution |
|
||||
| ALLOWED_PATHS | [] | Paths accessible to tools |
|
||||
@@ -357,7 +359,7 @@ Gitea Actions workflow:
|
||||
|
||||
Deployed in Portainer `agents` stack alongside Tatlock:
|
||||
- Network: `docker-dataplane`
|
||||
- Registry: `git.schweitz.internal/jpmschweitzer/webber`
|
||||
- Registry: `git.schweitz.net/jpmschweitzer/webber`
|
||||
- Auto-update: Watchtower with label `com.centurylinklabs.watchtower.enable=true`
|
||||
|
||||
---
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "webber-api"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
description = "Webber API - Multi-Agent AI Development Server"
|
||||
authors = [
|
||||
{name = "jpmschweitzer"}
|
||||
|
||||
@@ -64,15 +64,15 @@ class Settings(BaseSettings):
|
||||
|
||||
# LLM - Ollama (always hot in VRAM on tower-of-joy)
|
||||
ollama_url: str = "http://192.168.86.149:11434"
|
||||
ollama_agent_model: str = "mistral-nemo-large:latest"
|
||||
ollama_agent_model: str = "gemma4:e2b"
|
||||
ollama_embed_model: str = "nomic-embed-text:latest"
|
||||
|
||||
# Auth - Tatlock integration
|
||||
tatlock_api_url: str | None = "http://192.168.86.149:8000"
|
||||
tatlock_api_url: str | None = "http://tatlock:8000"
|
||||
internal_api_key: str | None = None
|
||||
|
||||
# Web search - SearXNG (use SEARXNG_URL env var to override)
|
||||
searxng_url: str = "http://192.168.86.149:8087"
|
||||
searxng_url: str = "http://searxng:8080"
|
||||
searxng_timeout: int = 10
|
||||
|
||||
# Tool execution
|
||||
|
||||
@@ -12,7 +12,7 @@ class TestWebSearchTool:
|
||||
|
||||
@pytest.fixture
|
||||
def tool(self):
|
||||
return WebSearchTool(searxng_url="http://localhost:8087", timeout=5)
|
||||
return WebSearchTool(searxng_url="http://searxng:8080", timeout=5)
|
||||
|
||||
@pytest.fixture
|
||||
def mock_search_response(self):
|
||||
|
||||
Reference in New Issue
Block a user