Guitar
CommitMessageGenerator.h
Go to the documentation of this file.
1 #ifndef COMMITMESSAGEGENERATOR_H
2 #define COMMITMESSAGEGENERATOR_H
3 
4 #include "GenerativeAI.h"
5 #include "Git.h"
6 #include <string>
7 
9 public:
10  class Result {
11  public:
12  bool error = false;
13  std::string error_status;
14  std::string error_message;
15  std::vector<std::string> messages;
16  Result() = default;
17  Result(std::vector<std::string> const &messages)
19  {
20  }
21  };
22 private:
23  CommitMessageGenerator::Result parse_response(const std::string &in, GenerativeAI::AI provider);
24  std::string generatePrompt(const std::string &diff, int max);
25  std::string generate_prompt_json(const GenerativeAI::Model &model, const std::string &prompt);
26 public:
28  Result generate(std::string const &diff, QString const &hint = {});
29  static std::string diff_head(GitRunner g);
30  static Result Error(std::string const &status, std::string const &message)
31  {
32  Result ret;
33  ret.error = true;
34  ret.error_status = status;
35  ret.error_message = message;
36  return ret;
37  }
38 };
39 
40 #endif // COMMITMESSAGEGENERATOR_H
Definition: CommitMessageGenerator.h:10
std::vector< std::string > messages
Definition: CommitMessageGenerator.h:15
bool error
Definition: CommitMessageGenerator.h:12
std::string error_status
Definition: CommitMessageGenerator.h:13
std::string error_message
Definition: CommitMessageGenerator.h:14
Result(std::vector< std::string > const &messages)
Definition: CommitMessageGenerator.h:17
Definition: CommitMessageGenerator.h:8
std::string generatePrompt(const std::string &diff, int max)
Generate a prompt for the given diff.
Definition: CommitMessageGenerator.cpp:316
CommitMessageGenerator::Result parse_response(const std::string &in, GenerativeAI::AI provider)
Parse the response from the AI model.
Definition: CommitMessageGenerator.cpp:236
static std::string diff_head(GitRunner g)
Definition: CommitMessageGenerator.cpp:403
CommitMessageGenerator()=default
std::string generate_prompt_json(const GenerativeAI::Model &model, const std::string &prompt)
Definition: CommitMessageGenerator.cpp:327
static Result Error(std::string const &status, std::string const &message)
Definition: CommitMessageGenerator.h:30
Result generate(std::string const &diff, QString const &hint={})
Generate a commit message using the given diff.
Definition: CommitMessageGenerator.cpp:337
Definition: Git.h:740
AI
Definition: GenerativeAI.h:9
Definition: GenerativeAI.h:63