6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/sylvia/llm.rb', line 6
def self.setup
content = " require 'ruby_llm'\n require 'tty-markdown'\n\n api_key = 'xxx'\n model_ai = 'gemini-2.0-flash'\n\n RubyLLM.configure do |config|\n config.gemini_api_key = api_key\n end\n\n chat = RubyLLM.chat(model: model_ai)\n\n response = chat.ask <<~PROMPT, with: [\"assets/example.rb\", \"assets/example2.rb\"]\n Please review the following Ruby code and suggest improvements:\n\n 1. Use descriptive variable names.\n 2. Follow Ruby style conventions.\n 3. Optimize loops and iterators.\n 4. Avoid unnecessary complexity.\nPROMPT\n\n markdown = response.content.to_s\n\n puts TTY::Markdown.parse(markdown)\n RUBY\n\n File.write(FILE_NAME, content)\n puts \"Created \#{FILE_NAME}\"\n\n if File.exist?(GITIGNORE_FILE)\n gitignore_content = File.read(GITIGNORE_FILE).split(\"\\n\")\n if gitignore_content.include?(FILE_NAME)\n puts \"\#{FILE_NAME} is already in \#{GITIGNORE_FILE}\"\n else\n File.open(GITIGNORE_FILE, 'a') { |f| f.puts \"\\n\#{FILE_NAME}\" }\n puts \"Added \#{FILE_NAME} to \#{GITIGNORE_FILE}\"\n end\n else\n File.write(GITIGNORE_FILE, \"\#{FILE_NAME}\\n\")\n puts \"Created \#{GITIGNORE_FILE} and added \#{FILE_NAME}\"\n end\nend\n"
|