Whitepaper
Docs
Sign In
Function
Function
pipe
v1.1
NanoGPT
Function ID
nanogpt
Creator
@razorozx
Downloads
60+
NanoGPT API (2025-04-15)
Get
README
No README available
Function Code
Show
""" title: NanoGPT author: razorozx author_url: https://openwebui.com/u/razorozx funding_url: https://www.paypal.com/donate/?hosted_button_id=YNUNKUXDX8URN version: 1.1 license: MIT created: 2025-03-22 last updated: 2025-04-15 """ # Find the model list either using their API call or by simply copy/paste from their listing online. The following assumes that you copied it off the website. # Using Nushell to easily format the model json. Remove the Description section. Save it as models.tsv. # The following Nushell command will neatly format the non-json format into json format, and then pipes it into neovim: # open models.tsv | select Model Name | rename id name | sort-by name | update name { "{self.valves.NAME_PREFIX}" + $in } | to json | nvim # When in neovim, use the following regex command to convert the valves portion into valid Python format: # %s/ "{/f"{ # Then, while still in neovim, use the following command to correct the indentations to be Python compliant: # %s/ / /g # This final result should replace the long hard-coded list of models if there is ever an update to NanoGPT's model list. # (yes there is a way to simply do this without hardcoding it into the python file -- but I'm lazy.) from pydantic import BaseModel, Field from typing import Optional, Union, Generator, Iterator from open_webui.utils.misc import get_last_user_message from open_webui.utils.misc import pop_system_message import os import requests RETURN_CITATIONS_IN_NON_STREAMED_CONTENT = True class Pipe: # Class: Set Valves class Valves(BaseModel): NAME_PREFIX: str = Field( default="NanoGPT/", description="The prefix applied before the model names.", ) NANOGPT_API_BASE_URL: str = Field( default="https://nano-gpt.com/api/v1/", description="The base URL for NanoGPT API endpoints.", ) NANOGPT_API_KEY: str = Field( default="", description="Required API key to access NanoGPT services.", ) # Function: Initialize this script as a manifold pipe def __init__(self): self.type = "manifold" self.valves = self.Valves() # Function: Defining all available models def pipes(self): return [ {"id": "asi1-mini", "name": f"{self.valves.NAME_PREFIX}ASI1 Mini"}, {"id": "aion-labs/aion-1.0", "name": f"{self.valves.NAME_PREFIX}Aion 1.0"}, { "id": "aion-labs/aion-1.0-mini", "name": f"{self.valves.NAME_PREFIX}Aion 1.0 mini (DeepSeek)", }, { "id": "amazon/nova-lite-v1", "name": f"{self.valves.NAME_PREFIX}Amazon Nova Lite 1.0", }, { "id": "amazon/nova-micro-v1", "name": f"{self.valves.NAME_PREFIX}Amazon Nova Micro 1.0", }, { "id": "amazon/nova-pro-v1", "name": f"{self.valves.NAME_PREFIX}Amazon Nova Pro 1.0", }, { "id": "TheDrummer/Anubis-70B-v1", "name": f"{self.valves.NAME_PREFIX}Anubis 70B v1", }, { "id": "anubis-pro-105b-v1", "name": f"{self.valves.NAME_PREFIX}Anubis Pro 105b v1", }, { "id": "Nexusflow/Athene-V2-Chat", "name": f"{self.valves.NAME_PREFIX}Athene V2 Chat", }, { "id": "azure-gpt-4-turbo", "name": f"{self.valves.NAME_PREFIX}Azure gpt-4-turbo", }, {"id": "azure-gpt-4o", "name": f"{self.valves.NAME_PREFIX}Azure gpt-4o"}, { "id": "azure-gpt-4o-mini", "name": f"{self.valves.NAME_PREFIX}Azure gpt-4o-mini", }, {"id": "azure-o1", "name": f"{self.valves.NAME_PREFIX}Azure o1"}, {"id": "azure-o3-mini", "name": f"{self.valves.NAME_PREFIX}Azure o3-mini"}, {"id": "chatgpt-4o-latest", "name": f"{self.valves.NAME_PREFIX}ChatGPT 4o"}, { "id": "chatgpt-4o-latest-reasoner", "name": f"{self.valves.NAME_PREFIX}ChatGPT 4o Reasoner", }, { "id": "claude-3-opus-20240229", "name": f"{self.valves.NAME_PREFIX}Claude 3 Opus", }, { "id": "claude-3-5-haiku-20241022", "name": f"{self.valves.NAME_PREFIX}Claude 3.5 Haiku", }, { "id": "claude-3-5-sonnet-20241022", "name": f"{self.valves.NAME_PREFIX}Claude 3.5 Sonnet", }, { "id": "claude-3-5-sonnet-20240620", "name": f"{self.valves.NAME_PREFIX}Claude 3.5 Sonnet Old", }, { "id": "claude-3-7-sonnet-20250219", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet", }, { "id": "claude-3-7-sonnet-reasoner", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Reasoner", }, { "id": "claude-3-7-sonnet-thinking", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Thinking", }, { "id": "claude-3-7-sonnet-thinking:128000", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Thinking (128K)", }, { "id": "claude-3-7-sonnet-thinking:1024", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Thinking (1K)", }, { "id": "claude-3-7-sonnet-thinking:32768", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Thinking (32K)", }, { "id": "claude-3-7-sonnet-thinking:8192", "name": f"{self.valves.NAME_PREFIX}Claude 3.7 Sonnet Thinking (8K)", }, { "id": "cohere/command-r", "name": f"{self.valves.NAME_PREFIX}Cohere: Command R", }, { "id": "cohere/command-r-plus-08-2024", "name": f"{self.valves.NAME_PREFIX}Cohere: Command R+", }, { "id": "Steelskull/L3.3-Damascus-R1", "name": f"{self.valves.NAME_PREFIX}Damascus R1.", }, { "id": "Qwen2.5-32B-Dazzling-Star-Aurora-32b-v0.0", "name": f"{self.valves.NAME_PREFIX}Dazzling Star Aurora 32b", }, {"id": "deepclaude", "name": f"{self.valves.NAME_PREFIX}DeepClaude"}, { "id": "agentica-org/DeepCoder-14B-Preview", "name": f"{self.valves.NAME_PREFIX}DeepCoder 14B Preview", }, { "id": "deepseek-v3-0324", "name": f"{self.valves.NAME_PREFIX}DeepSeek Chat 0324", }, {"id": "deepseek-r1-nano", "name": f"{self.valves.NAME_PREFIX}DeepSeek R1"}, { "id": "deepseek-r1-sambanova", "name": f"{self.valves.NAME_PREFIX}DeepSeek R1 Fast", }, { "id": "deepseek-r1-llama-70b", "name": f"{self.valves.NAME_PREFIX}DeepSeek R1 Llama 70b", }, { "id": "deepseek-ai/DeepSeek-R1-Zero", "name": f"{self.valves.NAME_PREFIX}DeepSeek R1 Zero Preview", }, { "id": "deepseek-reasoner", "name": f"{self.valves.NAME_PREFIX}DeepSeek Reasoner", }, { "id": "deepseek-chat-cheaper", "name": f"{self.valves.NAME_PREFIX}DeepSeek V3/Chat Cheaper", }, { "id": "deepseek-chat", "name": f"{self.valves.NAME_PREFIX}DeepSeek V3/Deepseek Chat", }, { "id": "deepseek-reasoner-cheaper", "name": f"{self.valves.NAME_PREFIX}Deepseek R1 Cheaper", }, { "id": "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", "name": f"{self.valves.NAME_PREFIX}Deepseek R1 Llama 70b Abliterated", }, { "id": "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", "name": f"{self.valves.NAME_PREFIX}Deepseek R1 Qwen Abliterated", }, { "id": "cognitivecomputations/dolphin-mixtral-8x22b", "name": f"{self.valves.NAME_PREFIX}Dolphin 2.9.2 Mixtral 8x22B", }, { "id": "dolphin-2.9.2-qwen2-72b", "name": f"{self.valves.NAME_PREFIX}Dolphin 72b", }, { "id": "doubao-1.5-pro-256k", "name": f"{self.valves.NAME_PREFIX}Doubao 1.5 Pro 256k", }, { "id": "doubao-1.5-pro-32k", "name": f"{self.valves.NAME_PREFIX}Doubao 1.5 Pro 32k", }, { "id": "doubao-1.5-vision-pro-32k", "name": f"{self.valves.NAME_PREFIX}Doubao 1.5 Vision Pro 32k", }, { "id": "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0", "name": f"{self.valves.NAME_PREFIX}EVA Llama 3.33 70B", }, { "id": "eva-unit-01/eva-qwen-2.5-72b", "name": f"{self.valves.NAME_PREFIX}EVA Qwen2.5 72B", }, { "id": "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", "name": f"{self.valves.NAME_PREFIX}EVA-LLaMA-3.33-70B-v0.1", }, { "id": "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2", "name": f"{self.valves.NAME_PREFIX}EVA-Qwen2.5-32B-v0.2", }, { "id": "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", "name": f"{self.valves.NAME_PREFIX}EVA-Qwen2.5-72B-v0.2", }, { "id": "ernie-4.5-8k-preview", "name": f"{self.valves.NAME_PREFIX}Ernie 4.5 8k Preview", }, { "id": "ernie-x1-32k-preview", "name": f"{self.valves.NAME_PREFIX}Ernie X1 32k", }, { "id": "Steelskull/L3.3-MS-Evayale-70B", "name": f"{self.valves.NAME_PREFIX}Evayale 70b ", }, { "id": "THUDM/GLM-4-32B-0414", "name": f"{self.valves.NAME_PREFIX}GLM 4 32B 0414", }, { "id": "THUDM/GLM-4-9B-0414", "name": f"{self.valves.NAME_PREFIX}GLM 4 9B 0414", }, { "id": "glm-4-air-0111", "name": f"{self.valves.NAME_PREFIX}GLM 4 Air 0111", }, { "id": "glm-4-plus-0111", "name": f"{self.valves.NAME_PREFIX}GLM 4 Plus 0111", }, { "id": "THUDM/GLM-Z1-32B-0414", "name": f"{self.valves.NAME_PREFIX}GLM Z1 32B 0414", }, { "id": "THUDM/GLM-Z1-9B-0414", "name": f"{self.valves.NAME_PREFIX}GLM Z1 9B 0414", }, {"id": "glm-z1-air", "name": f"{self.valves.NAME_PREFIX}GLM Z1 AirX"}, {"id": "glm-z1-airx", "name": f"{self.valves.NAME_PREFIX}GLM Z1 AirX"}, { "id": "THUDM/GLM-Z1-Rumination-32B-0414", "name": f"{self.valves.NAME_PREFIX}GLM Z1 Rumination 32B 0414", }, { "id": "glm-zero-preview", "name": f"{self.valves.NAME_PREFIX}GLM Zero Preview", }, {"id": "glm-4", "name": f"{self.valves.NAME_PREFIX}GLM-4"}, {"id": "glm-4-air", "name": f"{self.valves.NAME_PREFIX}GLM-4 Air"}, {"id": "glm-4-airx", "name": f"{self.valves.NAME_PREFIX}GLM-4 AirX"}, {"id": "glm-4-flash", "name": f"{self.valves.NAME_PREFIX}GLM-4 Flash"}, {"id": "glm-4-long", "name": f"{self.valves.NAME_PREFIX}GLM-4 Long"}, {"id": "glm-4-plus", "name": f"{self.valves.NAME_PREFIX}GLM-4 Plus"}, {"id": "gpt-3.5-turbo", "name": f"{self.valves.NAME_PREFIX}GPT 3.5 Turbo"}, { "id": "gpt-4-turbo-preview", "name": f"{self.valves.NAME_PREFIX}GPT 4 Turbo Preview", }, {"id": "openai/gpt-4.1", "name": f"{self.valves.NAME_PREFIX}GPT 4.1"}, { "id": "openai/gpt-4.1-mini", "name": f"{self.valves.NAME_PREFIX}GPT 4.1 Mini", }, { "id": "openai/gpt-4.1-nano", "name": f"{self.valves.NAME_PREFIX}GPT 4.1 Nano", }, { "id": "gpt-4.1-reasoner", "name": f"{self.valves.NAME_PREFIX}GPT 4.1 Reasoner", }, {"id": "gpt-4.5-preview", "name": f"{self.valves.NAME_PREFIX}GPT 4.5"}, { "id": "gpt-4.5-preview-2025-02-27-reasoner", "name": f"{self.valves.NAME_PREFIX}GPT 4.5 Preview Reasoner", }, {"id": "gpt-4o", "name": f"{self.valves.NAME_PREFIX}GPT 4o"}, { "id": "gpt-4o-2024-08-06", "name": f"{self.valves.NAME_PREFIX}GPT 4o 08 06", }, { "id": "gpt-4o-2024-11-20", "name": f"{self.valves.NAME_PREFIX}GPT 4o 11 20", }, { "id": "gpt-4o-mini-search-preview", "name": f"{self.valves.NAME_PREFIX}GPT 4o Mini Search", }, { "id": "gpt-4o-reasoner", "name": f"{self.valves.NAME_PREFIX}GPT 4o Reasoner", }, { "id": "gpt-4o-search-preview", "name": f"{self.valves.NAME_PREFIX}GPT 4o Search", }, {"id": "gpt-4o-mini", "name": f"{self.valves.NAME_PREFIX}GPT 4o mini"}, { "id": "google/gemini-flash-1.5", "name": f"{self.valves.NAME_PREFIX}Gemini 1.5 Flash", }, { "id": "gemini-2.0-flash-001", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash", }, { "id": "gemini-2.0-flash-exp", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash Exp", }, { "id": "gemini-2.0-flash-exp-search", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash Exp Search", }, { "id": "gemini-2.0-flash-lite", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash Lite", }, { "id": "gemini-2.0-flash-thinking-exp-01-21", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash Thinking 0121", }, { "id": "gemini-2.0-flash-thinking-exp-1219", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Flash Thinking 1219", }, { "id": "gemini-2.0-pro-exp-02-05", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Pro 0205", }, { "id": "gemini-exp-1206", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Pro 1206", }, { "id": "gemini-2.0-pro-reasoner", "name": f"{self.valves.NAME_PREFIX}Gemini 2.0 Pro Reasoner", }, { "id": "gemini-2.5-pro-preview-03-25", "name": f"{self.valves.NAME_PREFIX}Gemini 2.5 Pro", }, { "id": "gemini-2.5-pro-exp-03-25", "name": f"{self.valves.NAME_PREFIX}Gemini 2.5 Pro Experimental", }, { "id": "learnlm-1.5-pro-experimental", "name": f"{self.valves.NAME_PREFIX}Gemini LearnLM Experimental", }, { "id": "gemini-2.0-flash-exp-image-generation", "name": f"{self.valves.NAME_PREFIX}Gemini Text + Image", }, { "id": "unsloth/gemma-3-12b-it", "name": f"{self.valves.NAME_PREFIX}Gemma 3 12B IT", }, { "id": "unsloth/gemma-3-1b-it", "name": f"{self.valves.NAME_PREFIX}Gemma 3 1B IT", }, { "id": "unsloth/gemma-3-27b-it", "name": f"{self.valves.NAME_PREFIX}Gemma 3 27B IT", }, { "id": "unsloth/gemma-3-4b-it", "name": f"{self.valves.NAME_PREFIX}Gemma 3 4B IT", }, { "id": "unsloth/gemma-3-9b-it", "name": f"{self.valves.NAME_PREFIX}Gemma 3 9B IT", }, { "id": "nousresearch/hermes-3-llama-3.1-405b", "name": f"{self.valves.NAME_PREFIX}Hermes 3 Large", }, {"id": "hunyuan-t1-latest", "name": f"{self.valves.NAME_PREFIX}Hunyuan T1"}, { "id": "hunyuan-turbos-20250226", "name": f"{self.valves.NAME_PREFIX}Hunyuan Turbo S", }, { "id": "inflection/inflection-3-pi", "name": f"{self.valves.NAME_PREFIX}Inflection 3 Pi", }, { "id": "inflection/inflection-3-productivity", "name": f"{self.valves.NAME_PREFIX}Inflection 3 Productivity", }, { "id": "jamba-large-1.6", "name": f"{self.valves.NAME_PREFIX}Jamba Large 1.6", }, { "id": "jamba-mini-1.6", "name": f"{self.valves.NAME_PREFIX}Jamba Mini 1.6", }, {"id": "kimi-latest", "name": f"{self.valves.NAME_PREFIX}Kimi Latest"}, { "id": "moonshotai/Kimi-VL-A3B-Thinking", "name": f"{self.valves.NAME_PREFIX}Kimi VL Thinking", }, { "id": "Mistral-Nemo-12B-Wayfarer", "name": f"{self.valves.NAME_PREFIX}LatitudeGames WayFarer 12B", }, { "id": "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", "name": f"{self.valves.NAME_PREFIX}Llama 3 70B abliterated", }, { "id": "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", "name": f"{self.valves.NAME_PREFIX}Llama 3.05 Storybreaker Ministral 70b", }, { "id": "Llama-3.3+3.1-70B-ArliAI-RPMax-v1.3", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 70B ArliAI RPMax v1.3", }, { "id": "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 70B Celeste v0.1", }, { "id": "abacusai/Dracarys-72B-Instruct", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 70B Dracarys 2", }, { "id": "Sao10K/L3.1-70B-Euryale-v2.2", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 70B Euryale", }, { "id": "Sao10K/L3.1-70B-Hanami-x1", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 70B Hanami", }, { "id": "Meta-Llama-3-1-8B-Instruct-FP8", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 8B (decentralized)", }, { "id": "aion-labs/aion-rp-llama-3.1-8b", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 8b (uncensored)", }, { "id": "meta-llama/llama-3.1-8b-instruct", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 8b Instruct", }, { "id": "Meta-Llama-3-1-405B-Instruct-FP8", "name": f"{self.valves.NAME_PREFIX}Llama 3.1 Large", }, { "id": "meta-llama/llama-3.2-3b-instruct", "name": f"{self.valves.NAME_PREFIX}Llama 3.2 3b Instruct", }, { "id": "meta-llama/llama-3.2-90b-vision-instruct", "name": f"{self.valves.NAME_PREFIX}Llama 3.2 Medium", }, { "id": "Steelskull/L3.3-Cu-Mai-R1-70b", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70B Cu Mai", }, { "id": "Sao10K/L3.3-70B-Euryale-v2.3", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70B Euryale", }, { "id": "huihui-ai/Llama-3.3-70B-Instruct-abliterated", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70B Instruct abliterated", }, { "id": "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70B Wayfarer", }, { "id": "meta-llama/llama-3.3-70b-instruct", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70b Instruct", }, { "id": "Llama-3.3-70B-MiraiFanfare", "name": f"{self.valves.NAME_PREFIX}Llama 3.3 70b Mirai Fanfare", }, { "id": "meta-llama/llama-4-maverick", "name": f"{self.valves.NAME_PREFIX}Llama 4 Maverick", }, { "id": "meta-llama/llama-4-scout", "name": f"{self.valves.NAME_PREFIX}Llama 4 Scout", }, { "id": "NeverSleep/Llama-3-Lumimaid-70B-v0.1", "name": f"{self.valves.NAME_PREFIX}Lumimaid 70b", }, { "id": "NeverSleep/Lumimaid-v0.2-70B", "name": f"{self.valves.NAME_PREFIX}Lumimaid v0.2", }, { "id": "GalrionSoftworks/MN-LooseCannon-12B-v1", "name": f"{self.valves.NAME_PREFIX}MN-LooseCannon-12B-v1", }, { "id": "Steelskull/L3.3-MS-Evalebis-70b", "name": f"{self.valves.NAME_PREFIX}MS Evalebis 70b", }, { "id": "inflatebot/MN-12B-Mag-Mell-R1", "name": f"{self.valves.NAME_PREFIX}Mag Mell R1", }, { "id": "anthracite-org/magnum-v2-72b", "name": f"{self.valves.NAME_PREFIX}Magnum V2 72B", }, { "id": "anthracite-org/magnum-v4-72b", "name": f"{self.valves.NAME_PREFIX}Magnum v4 72B", }, { "id": "minimax/minimax-01", "name": f"{self.valves.NAME_PREFIX}MiniMax 01", }, { "id": "mistralai/mistral-7b-instruct", "name": f"{self.valves.NAME_PREFIX}Mistral 7B Instruct", }, { "id": "mistralai/mistral-large", "name": f"{self.valves.NAME_PREFIX}Mistral Large 2411", }, { "id": "mistralai/Mistral-Nemo-Instruct-2407", "name": f"{self.valves.NAME_PREFIX}Mistral Nemo", }, { "id": "Infermatic/MN-12B-Inferor-v0.0", "name": f"{self.valves.NAME_PREFIX}Mistral Nemo Inferor 12B", }, { "id": "VongolaChouko/Starcannon-Unleashed-12B-v1.0", "name": f"{self.valves.NAME_PREFIX}Mistral Nemo Starcannon 12b v1", }, { "id": "mistralai/mistral-saba", "name": f"{self.valves.NAME_PREFIX}Mistral Saba", }, { "id": "mistral-small-31-24b-instruct", "name": f"{self.valves.NAME_PREFIX}Mistral Small 31 24b Instruct", }, { "id": "mistralai/mistral-tiny", "name": f"{self.valves.NAME_PREFIX}Mistral Tiny", }, { "id": "Gryphe/MythoMax-L2-13b", "name": f"{self.valves.NAME_PREFIX}MythoMax 13B", }, { "id": "Mistral-Nemo-12B-ArliAI-RPMax-v1.2", "name": f"{self.valves.NAME_PREFIX}Nemo Arli 12b RPMa V1.2", }, { "id": "MarinaraSpaghetti/NemoMix-Unleashed-12B", "name": f"{self.valves.NAME_PREFIX}NemoMix 12B Unleashed", }, { "id": "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", "name": f"{self.valves.NAME_PREFIX}Nemotron 3.1 70B abliterated", }, { "id": "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B", "name": f"{self.valves.NAME_PREFIX}Nemotron Tenyxchat Storybreaker 70b", }, { "id": "mlabonne/NeuralDaredevil-8B-abliterated", "name": f"{self.valves.NAME_PREFIX}Neural Daredevil 8B abliterated", }, { "id": "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", "name": f"{self.valves.NAME_PREFIX}Nvidia Nemotron 70b", }, { "id": "nvidia/Llama-3.1-Nemotron-Nano-8B-v1", "name": f"{self.valves.NAME_PREFIX}Nvidia Nemotron Nano 8B", }, { "id": "nvidia/Llama-3.3-Nemotron-Super-49B-v1", "name": f"{self.valves.NAME_PREFIX}Nvidia Nemotron Super 49B", }, { "id": "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", "name": f"{self.valves.NAME_PREFIX}Nvidia Nemotron Ultra 253B", }, { "id": "open-r1/OlympicCoder-32B", "name": f"{self.valves.NAME_PREFIX}OlympicCoder 32B", }, { "id": "open-r1/OlympicCoder-7b", "name": f"{self.valves.NAME_PREFIX}OlympicCoder 7B", }, {"id": "o1", "name": f"{self.valves.NAME_PREFIX}OpenAI o1"}, {"id": "openai/o1-pro", "name": f"{self.valves.NAME_PREFIX}OpenAI o1 Pro"}, {"id": "o1-preview", "name": f"{self.valves.NAME_PREFIX}OpenAI o1 preview"}, {"id": "o3-mini", "name": f"{self.valves.NAME_PREFIX}OpenAI o3-mini"}, { "id": "o3-mini-high", "name": f"{self.valves.NAME_PREFIX}OpenAI o3-mini high", }, { "id": "o3-mini-low", "name": f"{self.valves.NAME_PREFIX}OpenAI o3-mini low", }, { "id": "sonar-deep-research", "name": f"{self.valves.NAME_PREFIX}Perplexity Deep Research", }, {"id": "sonar-pro", "name": f"{self.valves.NAME_PREFIX}Perplexity Pro"}, {"id": "r1-1776", "name": f"{self.valves.NAME_PREFIX}Perplexity R1 1776"}, { "id": "sonar-reasoning", "name": f"{self.valves.NAME_PREFIX}Perplexity Reasoning", }, { "id": "sonar-reasoning-pro", "name": f"{self.valves.NAME_PREFIX}Perplexity Reasoning Pro", }, {"id": "sonar", "name": f"{self.valves.NAME_PREFIX}Perplexity Simple"}, { "id": "phi-4-mini-instruct", "name": f"{self.valves.NAME_PREFIX}Phi 4 Mini", }, { "id": "phi-4-multimodal-instruct", "name": f"{self.valves.NAME_PREFIX}Phi 4 Multimodal", }, { "id": "QwQ-32B-ArliAI-RpR-v1", "name": f"{self.valves.NAME_PREFIX}QwQ 32b Arli V1", }, { "id": "Qwen2.5-32B-EVA-v0.2", "name": f"{self.valves.NAME_PREFIX}Qwen 2.5 32b EVA", }, { "id": "Qwen/Qwen2.5-Coder-32B-Instruct", "name": f"{self.valves.NAME_PREFIX}Qwen 2.5 Coder 32b", }, {"id": "qwen-max", "name": f"{self.valves.NAME_PREFIX}Qwen 2.5 Max"}, {"id": "qwen-long", "name": f"{self.valves.NAME_PREFIX}Qwen Long 10M"}, {"id": "qwen-plus", "name": f"{self.valves.NAME_PREFIX}Qwen Plus"}, { "id": "Qwen/QwQ-32B-Preview", "name": f"{self.valves.NAME_PREFIX}Qwen QwQ 32B Preview", }, {"id": "qwen-turbo", "name": f"{self.valves.NAME_PREFIX}Qwen Turbo"}, { "id": "qwen/qwen-2.5-72b-instruct", "name": f"{self.valves.NAME_PREFIX}Qwen2.5 72B", }, { "id": "qwen25-vl-72b-instruct", "name": f"{self.valves.NAME_PREFIX}Qwen25 VL 72b", }, {"id": "qvq-max", "name": f"{self.valves.NAME_PREFIX}Qwen: QvQ Max"}, {"id": "qwq-32b", "name": f"{self.valves.NAME_PREFIX}Qwen: QwQ 32B"}, { "id": "featherless-ai/Qwerky-72B", "name": f"{self.valves.NAME_PREFIX}Qwerky 72B", }, { "id": "undi95/remm-slerp-l2-13b", "name": f"{self.valves.NAME_PREFIX}ReMM SLERP 13B", }, { "id": "TheDrummer/Rocinante-12B-v1.1", "name": f"{self.valves.NAME_PREFIX}Rocinante 12b", }, { "id": "Sao10K/L3-8B-Stheno-v3.2", "name": f"{self.valves.NAME_PREFIX}Sao10K Stheno 8b", }, { "id": "shisa-ai/shisa-v2-llama3.3-70b", "name": f"{self.valves.NAME_PREFIX}Shisa V2 Llama 3.3 70B", }, { "id": "raifle/sorcererlm-8x22b", "name": f"{self.valves.NAME_PREFIX}SorcererLM 8x22B", }, { "id": "Steelskull/L3.3-Electra-R1-70b", "name": f"{self.valves.NAME_PREFIX}Steelskull Electra R1 70b", }, { "id": "Steelskull/L3.3-MS-Nevoria-70b", "name": f"{self.valves.NAME_PREFIX}Steelskull Nevoria 70b", }, { "id": "Steelskull/L3.3-Nevoria-R1-70b", "name": f"{self.valves.NAME_PREFIX}Steelskull Nevoria R1 70b", }, { "id": "step-r1-v-mini", "name": f"{self.valves.NAME_PREFIX}Step R1 V Mini", }, { "id": "step-2-16k-exp", "name": f"{self.valves.NAME_PREFIX}Step-2 16k Exp", }, {"id": "step-2-mini", "name": f"{self.valves.NAME_PREFIX}Step-2 Mini"}, { "id": "TheDrummer/Cydonia-24B-v2", "name": f"{self.valves.NAME_PREFIX}The Drummer Cydonia 24B", }, { "id": "parasail-the-omega-abomination-l-70b-v10", "name": f"{self.valves.NAME_PREFIX}The Omega Abomination", }, { "id": "thedrummer/skyfall-36b-v2", "name": f"{self.valves.NAME_PREFIX}TheDrummer Skyfall 36B V2", }, { "id": "TheDrummer/UnslopNemo-12B-v4.1", "name": f"{self.valves.NAME_PREFIX}UnslopNemo 12b v4", }, { "id": "microsoft/wizardlm-2-7b", "name": f"{self.valves.NAME_PREFIX}WizardLM-2 7B", }, { "id": "microsoft/wizardlm-2-8x22b", "name": f"{self.valves.NAME_PREFIX}WizardLM-2 8x22B", }, {"id": "yi-large", "name": f"{self.valves.NAME_PREFIX}Yi Large"}, {"id": "yi-lightning", "name": f"{self.valves.NAME_PREFIX}Yi Lightning"}, { "id": "yi-medium-200k", "name": f"{self.valves.NAME_PREFIX}Yi Medium 200k", }, { "id": "yi-34b-chat-200k", "name": f"{self.valves.NAME_PREFIX}Yi Medium 200k", }, {"id": "yi-34b-chat-0205", "name": f"{self.valves.NAME_PREFIX}Yi Spark"}, ] # Function: Payload and initiating contact def pipe(self, body: dict, __user__: dict) -> Union[str, Generator, Iterator]: # Valves: Check if API key has been set if not self.valves.NANOGPT_API_KEY: raise Exception("NANOGPT_API_KEY not provided in the valves.") # Payload: Set headers headers = { "Authorization": f"Bearer {self.valves.NANOGPT_API_KEY}", } # Payload: Set system prompt system_message, messages = pop_system_message(body.get("messages", [])) system_prompt = "You are a helpful assistant." if system_message is not None: system_prompt = system_message["content"] # Payload: Sanitize target model string model_id = body["model"] if model_id.startswith(self.valves.NAME_PREFIX): model_id = model_id[len(self.valves.NAME_PREFIX) :] # Required. For some reason it prepends "nanogpt." if model_id.startswith("nanogpt."): model_id = model_id[len("nanogpt.") :] # Note: When adding a function into OpenWebUI, you type in the Function title. # When you do this, it automatically generates a Function ID. # The issue is that the Function ID gets *ADDED* to the model_id here! # We have to manually extract the Function ID from the model_id! # Hence, the last two lines here! It's infuriating! # SOLUTION: Make sure your "Function ID" is EXACTLY "nanogpt" after you copy/paste # this script and create the title into OpenWebUI! Otherwise, IT WON'T WORK! # Payload: Final payload assembly payload = { "model": model_id, "messages": [{"role": "system", "content": system_prompt}, *messages], "stream": body.get("stream", True), "return_citations": True, "return_images": True, } # Payload: Send to API r = requests.post( url=f"{self.valves.NANOGPT_API_BASE_URL}/chat/completions", json=payload, headers=headers, stream=True, ) # Return response return r.iter_lines()