{ pkgs, lib, ... }: let
catwalk-providers = import ./catwalk-providers pkgs;
in {
# TODO: Precisely define the type
options.ai = lib.mkOption { type = lib.types.attrs; };
config.ai = {
deepseek = catwalk-providers.deepseek // {
api_key = lib.trim (builtins.readFile ~/Gist/Vault/deepseek_api_key_nvim.txt);
};
tavily.api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/tavily.txt);
jw2-openai = catwalk-providers.openai // {
id = "jw2-openai";
name = "JW2 OpenAI";
api_endpoint = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-url.txt);
api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-openai.txt);
models = builtins.mapAttrs (
_: model: model // {
context_window = 353 * 1000;
}
) catwalk-providers.openai.models;
};
jw2-deepseek = catwalk-providers.deepseek // {
id = "jw2-deepseek";
name = "JW2 DeepSeek";
api_endpoint = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-url.txt) + "/v1";
api_key = lib.trim (builtins.readFile ~/Gist/Vault/AI/jw2-deepseek.txt);
models.deepseek-flash = catwalk-providers.deepseek.models.deepseek-v4-flash // {
id = "deepseek-flash";
name = "DeepSeek-Flash";
};
};
};
}