|
|
@@ -145,6 +145,7 @@ const (
|
|
|
XAI = "xai"
|
|
|
CEREBRAS = "cerebras"
|
|
|
OCA = "oca"
|
|
|
+ NOUSRESEARCH = "nousResearch"
|
|
|
)
|
|
|
|
|
|
// AllProviders returns a slice of enabled provider IDs for the CLI build.
|
|
|
@@ -161,6 +162,7 @@ var AllProviders = []string{
|
|
|
"xai",
|
|
|
"cerebras",
|
|
|
"oca",
|
|
|
+ "nousResearch",
|
|
|
}
|
|
|
|
|
|
// ConfigField represents a configuration field requirement
|
|
|
@@ -318,6 +320,15 @@ var rawConfigFields = ` [
|
|
|
"fieldType": "password",
|
|
|
"placeholder": "Enter your API key"
|
|
|
},
|
|
|
+ {
|
|
|
+ "name": "nousResearchApiKey",
|
|
|
+ "type": "string",
|
|
|
+ "comment": "",
|
|
|
+ "category": "nousResearch",
|
|
|
+ "required": true,
|
|
|
+ "fieldType": "password",
|
|
|
+ "placeholder": "Enter your API key"
|
|
|
+ },
|
|
|
{
|
|
|
"name": "ulid",
|
|
|
"type": "string",
|
|
|
@@ -435,6 +446,15 @@ var rawConfigFields = ` [
|
|
|
"fieldType": "url",
|
|
|
"placeholder": "https://api.example.com"
|
|
|
},
|
|
|
+ {
|
|
|
+ "name": "minimaxApiLine",
|
|
|
+ "type": "string",
|
|
|
+ "comment": "",
|
|
|
+ "category": "general",
|
|
|
+ "required": false,
|
|
|
+ "fieldType": "string",
|
|
|
+ "placeholder": ""
|
|
|
+ },
|
|
|
{
|
|
|
"name": "ocaMode",
|
|
|
"type": "string",
|
|
|
@@ -775,6 +795,24 @@ var rawModelDefinitions = ` {
|
|
|
"supportsImages": false,
|
|
|
"supportsPromptCache": false,
|
|
|
"description": "A compact 20B open-weight Mixture-of-Experts language model designed for strong reasoning and tool use, ideal for edge devices and local inference."
|
|
|
+ },
|
|
|
+ "qwen.qwen3-coder-30b-a3b-v1:0": {
|
|
|
+ "maxTokens": 8192,
|
|
|
+ "contextWindow": 262144,
|
|
|
+ "inputPrice": 0,
|
|
|
+ "outputPrice": 0,
|
|
|
+ "supportsImages": false,
|
|
|
+ "supportsPromptCache": false,
|
|
|
+ "description": "Qwen3 Coder 30B MoE model with 3.3B activated parameters, optimized for code generation and analysis with 256K context window."
|
|
|
+ },
|
|
|
+ "qwen.qwen3-coder-480b-a35b-v1:0": {
|
|
|
+ "maxTokens": 8192,
|
|
|
+ "contextWindow": 262144,
|
|
|
+ "inputPrice": 0,
|
|
|
+ "outputPrice": 1,
|
|
|
+ "supportsImages": false,
|
|
|
+ "supportsPromptCache": false,
|
|
|
+ "description": "Qwen3 Coder 480B flagship MoE model with 35B activated parameters, designed for complex coding tasks with advanced reasoning capabilities and 256K context window."
|
|
|
}
|
|
|
},
|
|
|
"gemini": {
|
|
|
@@ -1263,6 +1301,26 @@ var rawModelDefinitions = ` {
|
|
|
"supportsPromptCache": false,
|
|
|
"description": "SOTA performance with ~1500 tokens/s"
|
|
|
}
|
|
|
+ },
|
|
|
+ "nousResearch": {
|
|
|
+ "Hermes-4-405B": {
|
|
|
+ "maxTokens": 8192,
|
|
|
+ "contextWindow": 128000,
|
|
|
+ "inputPrice": 0,
|
|
|
+ "outputPrice": 0,
|
|
|
+ "supportsImages": false,
|
|
|
+ "supportsPromptCache": false,
|
|
|
+ "description": "This is the largest model in the Hermes 4 family, and it is the fullest expression of our design, focused on advanced reasoning and creative depth rather than optimizing inference speed or cost."
|
|
|
+ },
|
|
|
+ "Hermes-4-70B": {
|
|
|
+ "maxTokens": 8192,
|
|
|
+ "contextWindow": 128000,
|
|
|
+ "inputPrice": 0,
|
|
|
+ "outputPrice": 0,
|
|
|
+ "supportsImages": false,
|
|
|
+ "supportsPromptCache": false,
|
|
|
+ "description": "This incarnation of Hermes 4 balances scale and size. It handles complex reasoning tasks, while staying fast and cost effective. A versatile choice for many use cases."
|
|
|
+ }
|
|
|
}
|
|
|
}`
|
|
|
|
|
|
@@ -1432,6 +1490,18 @@ func GetProviderDefinitions() (map[string]ProviderDefinition, error) {
|
|
|
HasDynamicModels: false,
|
|
|
SetupInstructions: `Configure Oca API credentials`,
|
|
|
}
|
|
|
+
|
|
|
+ // NousResearch
|
|
|
+ definitions["nousResearch"] = ProviderDefinition{
|
|
|
+ ID: "nousResearch",
|
|
|
+ Name: "NousResearch",
|
|
|
+ RequiredFields: getFieldsByProvider("nousResearch", configFields, true),
|
|
|
+ OptionalFields: getFieldsByProvider("nousResearch", configFields, false),
|
|
|
+ Models: modelDefinitions["nousResearch"],
|
|
|
+ DefaultModelID: "Hermes-4-405B",
|
|
|
+ HasDynamicModels: false,
|
|
|
+ SetupInstructions: `Configure NousResearch API credentials`,
|
|
|
+ }
|
|
|
|
|
|
return definitions, nil
|
|
|
}
|
|
|
@@ -1459,6 +1529,7 @@ func GetProviderDisplayName(providerID string) string {
|
|
|
"xai": "X AI (Grok)",
|
|
|
"cerebras": "Cerebras",
|
|
|
"oca": "Oca",
|
|
|
+ "nousResearch": "NousResearch",
|
|
|
}
|
|
|
|
|
|
if name, exists := displayNames[providerID]; exists {
|