1
1
defmodule Mix.Tasks.Rag.Install do
2
2
use Igniter.Mix.Task
3
+ alias Igniter . { Libs , Project }
3
4
4
5
@ example "mix rag.install --vector-store pgvector"
5
6
@@ -57,10 +58,10 @@ defmodule Mix.Tasks.Rag.Install do
57
58
58
59
igniter =
59
60
igniter
60
- |> Igniter. Project.Deps. add_dep ( { :text_chunker , "~> 0.3.1" } )
61
- |> Igniter. Project.Deps. add_dep ( { :bumblebee , "~> 0.6.0" } )
62
- |> Igniter. Project.Deps. add_dep ( { :exla , "~> 0.9.1" } )
63
- |> Igniter. Project.Config. configure ( "config.exs" , :nx , [ :default_backend ] , EXLA.Backend )
61
+ |> Project.Deps . add_dep ( { :text_chunker , "~> 0.3.1" } )
62
+ |> Project.Deps . add_dep ( { :bumblebee , "~> 0.6.0" } )
63
+ |> Project.Deps . add_dep ( { :exla , "~> 0.9.1" } )
64
+ |> Project.Config . configure ( "config.exs" , :nx , [ :default_backend ] , EXLA.Backend )
64
65
|> Igniter . compose_task ( "rag.gen_eval" )
65
66
|> Igniter . compose_task ( "rag.gen_servings" )
66
67
|> Igniter . compose_task ( "rag.gen_rag_module" )
@@ -79,15 +80,15 @@ defmodule Mix.Tasks.Rag.Install do
79
80
80
81
defp with_chroma ( igniter ) do
81
82
igniter
82
- |> Igniter. Project.Deps. add_dep ( { :chroma , "~> 0.1.3" } )
83
+ |> Project.Deps . add_dep ( { :chroma , "~> 0.1.3" } )
83
84
|> Igniter . apply_and_fetch_dependencies ( )
84
- |> Igniter. Project.Config. configure ( "config.exs" , :chroma , [ :host ] , "http://localhost:8000" )
85
- |> Igniter. Project.Config. configure ( "config.exs" , :chroma , [ :api_base ] , "api" )
86
- |> Igniter. Project.Config. configure ( "config.exs" , :chroma , [ :api_version ] , "v1" )
85
+ |> Project.Config . configure ( "config.exs" , :chroma , [ :host ] , "http://localhost:8000" )
86
+ |> Project.Config . configure ( "config.exs" , :chroma , [ :api_base ] , "api" )
87
+ |> Project.Config . configure ( "config.exs" , :chroma , [ :api_version ] , "v1" )
87
88
end
88
89
89
90
defp with_pgvector ( igniter ) do
90
- app_name = Igniter. Project.Application. app_name ( igniter )
91
+ app_name = Project.Application . app_name ( igniter )
91
92
92
93
root_module =
93
94
app_name
@@ -99,23 +100,23 @@ defmodule Mix.Tasks.Rag.Install do
99
100
schema_module = Module . concat ( root_module , "Rag.Chunk" )
100
101
101
102
igniter
102
- |> Igniter. Project.Deps. add_dep ( { :ecto , "~> 3.0" } )
103
- |> Igniter. Project.Deps. add_dep ( { :ecto_sql , "~> 3.10" } )
104
- |> Igniter. Project.Deps. add_dep ( { :pgvector , "~> 0.3.0" } )
103
+ |> Project.Deps . add_dep ( { :ecto , "~> 3.0" } )
104
+ |> Project.Deps . add_dep ( { :ecto_sql , "~> 3.10" } )
105
+ |> Project.Deps . add_dep ( { :pgvector , "~> 0.3.0" } )
105
106
|> Igniter . apply_and_fetch_dependencies ( )
106
107
|> Igniter . include_or_create_file (
107
108
"lib/postgrex_types.ex" ,
108
109
"""
109
110
Postgrex.Types.define(#{ inspect ( postgrex_types_module ) } , [Pgvector.Extensions.Vector] ++ Ecto.Adapters.Postgres.extensions(), [])
110
111
"""
111
112
)
112
- |> Igniter. Project.Config. configure (
113
+ |> Project.Config . configure (
113
114
"config.exs" ,
114
115
app_name ,
115
116
[ repo_module , :types ] ,
116
117
postgrex_types_module
117
118
)
118
- |> Igniter. Project.Module. create_module (
119
+ |> Project.Module . create_module (
119
120
schema_module ,
120
121
"""
121
122
@moduledoc \" ""
@@ -138,7 +139,7 @@ defmodule Mix.Tasks.Rag.Install do
138
139
end
139
140
"""
140
141
)
141
- |> Igniter. Libs.Ecto. gen_migration ( repo_module , "create_chunks_table" ,
142
+ |> Libs.Ecto . gen_migration ( repo_module , "create_chunks_table" ,
142
143
body: """
143
144
def up() do
144
145
execute("CREATE EXTENSION IF NOT EXISTS vector")
0 commit comments