55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
inherit (lib) mkIf;
|
|
|
|
cfg = config.my.ai;
|
|
in
|
|
{
|
|
config = mkIf cfg.enable {
|
|
home-manager.users.moritz.programs.nixvim = {
|
|
extraPlugins = with pkgs.vimPlugins; [
|
|
nui-nvim
|
|
render-markdown-nvim
|
|
avante-nvim
|
|
];
|
|
extraConfigLuaPost = ''
|
|
require("render-markdown").setup({ file_types = {"markdown", "Avante"} })
|
|
|
|
require("avante_lib").load()
|
|
require("avante").setup({
|
|
provider = "openai",
|
|
auto_suggestions_provider = "openai-cheap",
|
|
behaviour = {
|
|
auto_suggestions = false,
|
|
},
|
|
openai = {
|
|
model = "gpt-4o",
|
|
api_key_name = "cmd:cat /run/agenix/openai",
|
|
},
|
|
vendors = {
|
|
---@type AvanteProvider
|
|
["openai-cheap"] = {
|
|
model = "gpt-4o-mini",
|
|
api_key_name = "cmd:cat /run/agenix/openai",
|
|
endpoint = "https://api.openai.com/v1",
|
|
parse_curl_args = function(opts, code_opts)
|
|
return require("avante.providers").openai.parse_curl_args(opts, code_opts)
|
|
end,
|
|
parse_response_data = function(data_stream, event_state, opts)
|
|
return require("avante.providers").openai.parse_response(data_stream, event_state, opts)
|
|
end
|
|
},
|
|
},
|
|
})
|
|
'';
|
|
plugins.dressing.enable = true;
|
|
};
|
|
age.secrets = {
|
|
"openai".file = ../../../../secrets/openai.age;
|
|
"openai".owner = "moritz";
|
|
anthropic.file = ../../../../secrets/anthropic.age;
|
|
anthropic.owner = "moritz";
|
|
};
|
|
};
|
|
}
|