refactor: add ai config option

This commit is contained in:
Moritz Böhme 2024-10-24 20:32:29 +02:00
parent e525d68112
commit 72e98aa61c
Signed by: moritz
GPG key ID: 970C6E89EB0547A9
3 changed files with 43 additions and 30 deletions

View file

@ -14,6 +14,7 @@
]; ];
my = { my = {
ai.enable = true;
profiles = { profiles = {
desktop.enable = true; desktop.enable = true;
gaming.enable = true; gaming.enable = true;

8
modules/config/ai.nix Normal file
View file

@ -0,0 +1,8 @@
{ lib
, ...
}:
with lib;
{
options.my.ai.enable = mkEnableOption "AI stuff";
}

View file

@ -1,37 +1,41 @@
{ config, lib, pkgs, inputs, ... }: { config, lib, pkgs, ... }:
let let
inherit (lib) mkEnableOption mkIf readFile; inherit (lib) mkIf;
cfg = config.my.ai;
in in
{ {
home-manager.users.moritz.programs.nixvim = { config = mkIf cfg.enable {
extraPlugins = with pkgs.vimPlugins; [ home-manager.users.moritz.programs.nixvim = {
nui-nvim extraPlugins = with pkgs.vimPlugins; [
render-markdown-nvim nui-nvim
avante-nvim render-markdown-nvim
]; avante-nvim
extraConfigLuaPost = '' ];
require("render-markdown").setup({ file_types = {"markdown", "Avante"} }) extraConfigLuaPost = ''
require("render-markdown").setup({ file_types = {"markdown", "Avante"} })
require("avante_lib").load() require("avante_lib").load()
require("avante").setup({ require("avante").setup({
provider = "openai", provider = "openai",
auto_suggestions_provider = "openai", auto_suggestions_provider = "openai",
behaviour = { behaviour = {
-- auto_suggestions = true, -- auto_suggestions = true,
}, },
openai = { openai = {
model = "gpt-4o", model = "gpt-4o",
api_key_name = "cmd:cat /run/agenix/openai" api_key_name = "cmd:cat /run/agenix/openai"
} }
}) })
''; '';
# plugins.copilot-lua.enable = true; plugins.dressing.enable = true;
# plugins.copilot-lua.suggestion.enabled = false; };
# plugins.copilot-lua.panel.enabled = false; age.secrets = {
plugins.dressing.enable = true; "openai".file = ../../../../secrets/openai.age;
# performance.combinePlugins.standalonePlugins = [ "copilot.lua" ]; "openai".owner = "moritz";
anthropic.file = ../../../../secrets/anthropic.age;
anthropic.owner = "moritz";
};
}; };
age.secrets."openai".file = ../../../../secrets/openai.age;
age.secrets."openai".owner = "moritz";
} }