mirror of
https://github.com/clucraft/PriceGhost.git
synced 2026-04-25 00:36:32 +02:00
Release v1.0.5 - AI model selector, Gotify support, Ollama fixes
New Features: - AI model selector for Anthropic and OpenAI - Per-product AI extraction/verification disable toggles - Gotify self-hosted notification support with connection testing - AI stock status verification for variant products Fixes: - Ollama thinking mode (/nothink message, num_ctx: 16384) - AI now returns out_of_stock for pre-order/coming soon items Documentation: - Added recommended models: Claude Haiku 4.5 and Qwen3 - Added Gotify setup instructions - Updated API reference with new endpoints Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
84d088a8d1
commit
1f668239bd
4 changed files with 64 additions and 5 deletions
37
CHANGELOG.md
37
CHANGELOG.md
|
|
@ -5,6 +5,42 @@ All notable changes to PriceGhost will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.0.5] - 2026-01-25
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **AI Model Selector** - Choose your preferred AI model in settings
|
||||||
|
- Anthropic: Claude Haiku 4.5, Sonnet 4.5, Opus 4.5
|
||||||
|
- OpenAI: GPT-4.1 Nano, Mini, and Full
|
||||||
|
- Ollama: Any locally installed model
|
||||||
|
- **Per-Product AI Controls** - Disable AI extraction and/or verification on individual products
|
||||||
|
- Useful for products where AI interferes with manual price selection
|
||||||
|
- Separate toggles for extraction (fallback) and verification
|
||||||
|
- **Gotify Notification Support** - Self-hosted push notifications via Gotify
|
||||||
|
- Test connection before saving to verify server URL and app token
|
||||||
|
- Full notification support for price drops, target prices, and stock changes
|
||||||
|
- **AI Stock Status Verification** - Separate AI call to verify stock status for variant products
|
||||||
|
- When tracking a specific variant price, AI now verifies if that exact variant is in stock
|
||||||
|
- Fixes false "in stock" status when other variants are available but tracked variant is not
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Ollama Thinking Mode** - Fixed Qwen3 and DeepSeek models outputting `<think>` tags instead of JSON
|
||||||
|
- Added `/nothink` message before prompts to disable thinking mode
|
||||||
|
- Added `num_ctx: 16384` for proper context window (was truncating HTML at 4K)
|
||||||
|
- Added fallback to strip `<think>` tags from responses
|
||||||
|
- **AI Stock Status "Unknown"** - AI now correctly returns "out_of_stock" for pre-order/coming soon products
|
||||||
|
- Previously returned "unknown" even when reasoning stated product was unavailable
|
||||||
|
- Prompt now explicitly requires "out_of_stock" when product cannot be purchased
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **Recommended AI Models** - Based on testing:
|
||||||
|
- **Cloud**: Claude Haiku 4.5 (best accuracy for the cost)
|
||||||
|
- **Local/Free**: Qwen3 (any size, with thinking mode disabled)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [1.0.4] - 2026-01-24
|
## [1.0.4] - 2026-01-24
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
@ -162,6 +198,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
| Version | Date | Description |
|
| Version | Date | Description |
|
||||||
|---------|------|-------------|
|
|---------|------|-------------|
|
||||||
|
| 1.0.5 | 2026-01-25 | AI model selector, per-product AI controls, Gotify support, Ollama fixes |
|
||||||
| 1.0.4 | 2026-01-24 | Multi-strategy price voting system with user selection for ambiguous prices |
|
| 1.0.4 | 2026-01-24 | Multi-strategy price voting system with user selection for ambiguous prices |
|
||||||
| 1.0.3 | 2026-01-24 | Notification history with bell icon, clear button, and full history page |
|
| 1.0.3 | 2026-01-24 | Notification history with bell icon, clear button, and full history page |
|
||||||
| 1.0.2 | 2026-01-23 | Fixed stock status false positives for in-stock items |
|
| 1.0.2 | 2026-01-23 | Fixed stock status false positives for in-stock items |
|
||||||
|
|
|
||||||
28
README.md
28
README.md
|
|
@ -119,6 +119,7 @@ The cost is minimal (fractions of a cent per API call with Claude Haiku/GPT-4o-m
|
||||||
- **Discord** - Send alerts to any Discord channel via webhooks
|
- **Discord** - Send alerts to any Discord channel via webhooks
|
||||||
- **Pushover** - Native Pushover support for mobile push notifications
|
- **Pushover** - Native Pushover support for mobile push notifications
|
||||||
- **ntfy.sh** - Simple, no-account push notifications to any device
|
- **ntfy.sh** - Simple, no-account push notifications to any device
|
||||||
|
- **Gotify** - Self-hosted push notifications via your own Gotify server
|
||||||
- **Per-channel toggles** - Enable/disable each notification channel independently
|
- **Per-channel toggles** - Enable/disable each notification channel independently
|
||||||
- **Test notifications** - Send test alerts to verify your setup
|
- **Test notifications** - Send test alerts to verify your setup
|
||||||
|
|
||||||
|
|
@ -169,7 +170,7 @@ PriceGhost has **site-specific scrapers** optimized for:
|
||||||
| **Backend** | Node.js, Express, TypeScript |
|
| **Backend** | Node.js, Express, TypeScript |
|
||||||
| **Database** | PostgreSQL |
|
| **Database** | PostgreSQL |
|
||||||
| **Scraping** | Cheerio, Puppeteer (with stealth plugin) |
|
| **Scraping** | Cheerio, Puppeteer (with stealth plugin) |
|
||||||
| **AI Extraction** | Anthropic Claude, OpenAI GPT, Ollama (optional but recommended) |
|
| **AI Extraction** | Anthropic Claude (Haiku 4.5 recommended), OpenAI GPT, Ollama Qwen3 (optional but recommended) |
|
||||||
| **Charts** | Recharts |
|
| **Charts** | Recharts |
|
||||||
| **Auth** | JWT + bcrypt |
|
| **Auth** | JWT + bcrypt |
|
||||||
| **Scheduling** | node-cron |
|
| **Scheduling** | node-cron |
|
||||||
|
|
@ -262,6 +263,12 @@ npm run dev
|
||||||
3. Enter your topic name in Settings > Notifications
|
3. Enter your topic name in Settings > Notifications
|
||||||
4. No account or API key needed - it just works!
|
4. No account or API key needed - it just works!
|
||||||
|
|
||||||
|
#### Gotify (Self-Hosted)
|
||||||
|
1. Set up a [Gotify server](https://gotify.net/docs/install) on your own infrastructure
|
||||||
|
2. Create an application in Gotify to get an App Token
|
||||||
|
3. Enter your Gotify server URL and App Token in Settings > Notifications
|
||||||
|
4. Use "Test Connection" to verify before saving
|
||||||
|
|
||||||
### AI Extraction Setup (Highly Recommended)
|
### AI Extraction Setup (Highly Recommended)
|
||||||
|
|
||||||
For dramatically improved compatibility with difficult sites:
|
For dramatically improved compatibility with difficult sites:
|
||||||
|
|
@ -271,9 +278,22 @@ For dramatically improved compatibility with difficult sites:
|
||||||
3. Choose your provider:
|
3. Choose your provider:
|
||||||
- **Anthropic (Claude)** - Get key from [console.anthropic.com](https://console.anthropic.com)
|
- **Anthropic (Claude)** - Get key from [console.anthropic.com](https://console.anthropic.com)
|
||||||
- **OpenAI (GPT)** - Get key from [platform.openai.com](https://platform.openai.com/api-keys)
|
- **OpenAI (GPT)** - Get key from [platform.openai.com](https://platform.openai.com/api-keys)
|
||||||
- **Ollama (Local)** - Free, runs locally. Install from [ollama.ai](https://ollama.ai), then `ollama pull llama3.2`
|
- **Ollama (Local)** - Free, runs locally. Install from [ollama.ai](https://ollama.ai)
|
||||||
4. Enter your API key (or Ollama server URL for local)
|
4. Enter your API key (or Ollama server URL for local)
|
||||||
5. Use "Test Extraction" to verify it works
|
5. Select your preferred model
|
||||||
|
6. Use "Test Extraction" to verify it works
|
||||||
|
|
||||||
|
#### Recommended Models
|
||||||
|
|
||||||
|
Based on testing, these models work best with PriceGhost:
|
||||||
|
|
||||||
|
| Provider | Model | Notes |
|
||||||
|
|----------|-------|-------|
|
||||||
|
| **Anthropic** | Claude Haiku 4.5 | ⭐ Best overall - fast, accurate, cheap (~$0.001/check) |
|
||||||
|
| **Ollama** | Qwen3 (any size) | ⭐ Best free option - run `ollama pull qwen3` |
|
||||||
|
| OpenAI | GPT-4.1 Nano | Good alternative to Haiku |
|
||||||
|
|
||||||
|
**Note for Ollama users**: Qwen3 works well for price extraction and verification. Other models (llama3, mistral, deepseek) may struggle with structured JSON output or have thinking mode issues.
|
||||||
|
|
||||||
The AI automatically activates when standard scraping fails to extract a price, providing a reliable fallback.
|
The AI automatically activates when standard scraping fails to extract a price, providing a reliable fallback.
|
||||||
|
|
||||||
|
|
@ -310,6 +330,8 @@ The AI automatically activates when standard scraping fails to extract a price,
|
||||||
| POST | `/api/settings/notifications/test/discord` | Send test Discord notification |
|
| POST | `/api/settings/notifications/test/discord` | Send test Discord notification |
|
||||||
| POST | `/api/settings/notifications/test/pushover` | Send test Pushover notification |
|
| POST | `/api/settings/notifications/test/pushover` | Send test Pushover notification |
|
||||||
| POST | `/api/settings/notifications/test/ntfy` | Send test ntfy notification |
|
| POST | `/api/settings/notifications/test/ntfy` | Send test ntfy notification |
|
||||||
|
| POST | `/api/settings/notifications/test/gotify` | Send test Gotify notification |
|
||||||
|
| POST | `/api/settings/notifications/test-gotify` | Test Gotify connection before saving |
|
||||||
| GET | `/api/settings/ai` | Get AI extraction settings |
|
| GET | `/api/settings/ai` | Get AI extraction settings |
|
||||||
| PUT | `/api/settings/ai` | Update AI settings |
|
| PUT | `/api/settings/ai` | Update AI settings |
|
||||||
| POST | `/api/settings/ai/test` | Test AI extraction on a URL |
|
| POST | `/api/settings/ai/test` | Test AI extraction on a URL |
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "priceghost-backend",
|
"name": "priceghost-backend",
|
||||||
"version": "1.0.2",
|
"version": "1.0.5",
|
||||||
"description": "PriceGhost price tracking API",
|
"description": "PriceGhost price tracking API",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "priceghost-frontend",
|
"name": "priceghost-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.2",
|
"version": "1.0.5",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue