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  enum Kind {
12  };
13  class Result {
14  public:
15  bool error = false;
16  std::string error_status;
17  std::string error_message;
18  std::vector<std::string> messages;
19  Result() = default;
20  Result(std::vector<std::string> const &messages)
22  {
23  }
24  };
25 private:
27  CommitMessageGenerator::Result parse_response(const std::string &in, const GenerativeAI::Provider &provider);
28  std::string generatePrompt(const std::string &diff, int max);
29  std::string generatePromptJSON(const std::string &prompt, const GenerativeAI::Model &model);
30 public:
33  : kind(kind)
34  {
35  }
36  Result generate(std::string const &diff, QString const &hint = {});
37  static std::string diff_head(GitRunner g);
38  static Result Error(std::string const &status, std::string const &message)
39  {
40  Result ret;
41  ret.error = true;
42  ret.error_status = status;
43  ret.error_message = message;
44  return ret;
45  }
46 };
47 
48 #endif // COMMITMESSAGEGENERATOR_H
Definition: CommitMessageGenerator.h:13
std::vector< std::string > messages
Definition: CommitMessageGenerator.h:18
bool error
Definition: CommitMessageGenerator.h:15
std::string error_status
Definition: CommitMessageGenerator.h:16
std::string error_message
Definition: CommitMessageGenerator.h:17
Result(std::vector< std::string > const &messages)
Definition: CommitMessageGenerator.h:20
Definition: CommitMessageGenerator.h:8
std::string generatePrompt(const std::string &diff, int max)
Generate a prompt for the given diff.
Definition: CommitMessageGenerator.cpp:223
static std::string diff_head(GitRunner g)
Definition: CommitMessageGenerator.cpp:402
CommitMessageGenerator()=default
CommitMessageGenerator(Kind kind)
Definition: CommitMessageGenerator.h:32
Kind kind
Definition: CommitMessageGenerator.h:26
static Result Error(std::string const &status, std::string const &message)
Definition: CommitMessageGenerator.h:38
Kind
Definition: CommitMessageGenerator.h:10
@ CommitMessage
Definition: CommitMessageGenerator.h:11
CommitMessageGenerator::Result parse_response(const std::string &in, const GenerativeAI::Provider &provider)
Parse the response from the AI model.
Definition: CommitMessageGenerator.cpp:140
Result generate(std::string const &diff, QString const &hint={})
Generate a commit message using the given diff.
Definition: CommitMessageGenerator.cpp:342
std::string generatePromptJSON(const std::string &prompt, const GenerativeAI::Model &model)
Generate a JSON string for the given AI model.
Definition: CommitMessageGenerator.cpp:241
Definition: Git.h:739
std::variant< Unknown, OpenAI, Anthropic, Google, DeepSeek, OpenRouter, Ollama > Provider
Definition: GenerativeAI.h:60
Definition: GenerativeAI.h:79