by jlay2026 · v0.1.1
AskSage AI model provider - access GPT, Claude, Mistral, and other models through the AskSage platform.
This community listing does not yet include every recommended support, privacy, pricing, and permission disclosure. Review the available package permissions before installing.
Available inside your emploidai workspace after installation.
Available inside your emploidai workspace after installation.
A Dify plugin that integrates AskSage as a model provider, giving you access to 47+ AI models (GPT, Claude, Gemini, Llama, Groq, and more) through AskSage's FedRAMP-authorized API.
generate_models.py to refresh model YAMLs when AskSage adds new modelsThis plugin uses the AskSage commercial tenant at chat.asksage.com.
| Plan | Price | Tokens/Month |
|---|---|---|
| Bring Your Own LLMs | From $15/mo/user | Unlimited |
| Standard | $30/mo/user | 500K |
| Plus | $50/mo/user | 1M |
| Enterprise | $90/mo or $990/yr | 2M |
Contact sales@asksage.com for enterprise pricing and volume discounts.
For MFA setup, we recommend Microsoft Authenticator or Google Authenticator. Configure it in the same Account settings page.
| Component | Version |
|---|---|
| Dify | 1.0+ with Plugin Daemon |
| Dify Plugin Daemon | 0.5.5+ (see known issues) |
Dify Plugin SDK (dify_plugin) | 0.5.x (must match daemon) |
| Python | 3.12 |
| AskSage Account | With API key access |
Important: The dify_plugin SDK version must match your Plugin Daemon version. If your daemon is 0.5.3, install dify_plugin>=0.5.0,<0.6.0. A version mismatch (e.g., SDK 0.7.x with daemon 0.5.x) will cause silent connection failures.
Dify 1.13.3 ships with dify-plugin-daemon:0.5.3-local by default, which has a bug that breaks .difypkg installation. You must upgrade the daemon to 0.5.5+ before installing any local plugin package.
In your docker-compose.yaml (e.g. C:\dify\docker\docker-compose.yaml), find the plugin_daemon service and update the image:
plugin_daemon:
# IMPORTANT: Daemon 0.5.3 has a struct-tag bug that rejects
# plugin_unique_identifier on the /decode/from_identifier endpoint.
# This was fixed in 0.5.5 via dify-plugin-daemon PR #593.
# See: https://github.com/langgenius/dify-plugin-daemon/pull/593
image: langgenius/dify-plugin-daemon:0.5.5-local
Then restart the daemon:
cd C:\dify\docker
docker compose up -d plugin_daemon
asksage-0.1.0.difypkg from the Releases page.difypkg fileClone this repo:
git clone https://github.com/JLay2026/asksage-dify-plugin.git
cd asksage-dify-plugin
Create a virtual environment:
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1 # Windows
source .venv/bin/activate # Linux/Mac
Install dependencies:
pip install -r requirements.txt
Copy .env.example to .env and fill in your debug key:
INSTALL_METHOD=remote
REMOTE_INSTALL_HOST=localhost
REMOTE_INSTALL_PORT=5003
REMOTE_INSTALL_KEY=your-debug-key-from-dify
To find your debug key: Dify UI > Plugins > click the bug icon > copy Debug Key.
Run the plugin:
python -m main
After installing the plugin, configure it in Dify:
| Field | Description |
|---|---|
| API Key | Your AskSage static API key. Find it at Settings > Account > Manage your API Keys in the AskSage app. |
| The email address associated with your AskSage account. | |
| API Base URL | Default: https://api.asksage.ai. Only change if you use a custom AskSage deployment. |
/server/get-models endpoint.When AskSage adds new models to your tenant:
python generate_models.py
This calls /server/get-models, generates a YAML file for each model, and updates _position.yaml. Image-generation models are automatically filtered out. Restart the plugin or reinstall the .difypkg to pick up the changes.
asksage/
├── _assets/ # Provider icons (SVG)
├── models/llm/
│ ├── _position.yaml # Model display order
│ ├── *.yaml # One file per predefined model
│ └── llm.py # LLM implementation (core logic)
├── provider/
│ ├── asksage.yaml # Provider config and credential schemas
│ └── asksage.py # Credential validation
├── manifest.yaml # Plugin manifest
├── main.py # Entry point
├── generate_models.py # Model YAML generator script
├── requirements.txt # Python dependencies
└── .env.example # Environment template
When the plugin code is updated (new features, model changes, bug fixes), the update process depends on how you installed the plugin.
If you installed via a .difypkg upload, you must repackage and reinstall:
Pull the latest code:
cd C:\projects\asksage_plugin_dify\asksage
git pull origin main
Bump the version in manifest.yaml — the daemon rejects reinstalls at the same version:
# Example: 0.1.0 → 0.2.0
(Get-Content manifest.yaml -Raw) -replace 'version: 0.1.0', 'version: 0.2.0' |
Set-Content manifest.yaml -NoNewline -Encoding ([System.Text.UTF8Encoding]::new($false))
Repackage — run from the parent directory, not from inside the plugin folder:
cd C:\projects\asksage_plugin_dify
& "$HOME\bin\dify.exe" plugin package .\asksage
This writes asksage.difypkg to C:\projects\asksage_plugin_dify\. If you get "Access is denied", you are likely in a directory you don't have write access to (e.g. C:\).
Uninstall the old version in the Dify console: Plugins → find AskSage → delete/uninstall.
Upload the new .difypkg: Plugins → Install Plugin → upload the new file.
Re-enter credentials — API key and base URL do not carry over between installs. Go to the AskSage provider settings and re-enter them.
If you are running in debug mode (local Python process), updates are simpler:
Pull the latest code:
cd C:\projects\asksage_plugin_dify\asksage
git pull origin main
Restart the plugin — stop the running process (Ctrl+C) and relaunch:
.\.venv\Scripts\Activate.ps1
python -m main
Dify picks up updated model YAMLs and code on reconnect. No version bump or repackaging required.
Tip: Use debug mode during active development. Switch to
.difypkgfor production or team distribution.
Dify 1.13.3's default docker-compose.yaml pins langgenius/dify-plugin-daemon:0.5.3-local, which contains a bug in the DecodePluginFromIdentifier handler. The Go struct uses a json: tag instead of a form: tag, so Gin cannot bind the plugin_unique_identifier query parameter. The result is a 400 error on /decode/from_identifier immediately after a successful .difypkg upload:
400: Key: 'PluginUniqueIdentifier' Error: Field validation for 'PluginUniqueIdentifier' failed on the 'required' tag
Fix: Upgrade to daemon 0.5.5+ (see installation instructions above).
References:
/server/query returns complete responses. The plugin simulates streaming by yielding the full response as a single chunk.Apache 2.0