Add checkstyle rules (#274)

This commit is contained in:
Carl-Robert 2023-11-16 17:15:11 +02:00 committed by GitHub
parent fe613afc74
commit c4115e257b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 1129 additions and 564 deletions

View file

@ -40,7 +40,7 @@ public class EmbeddingsService {
public List<double[]> getEmbeddings(List<String> chunks) {
return openAIClient.getEmbeddings(chunks);
}
public String buildPromptWithContext(String prompt) {
try {
var inputEmbedding = openAIClient.getEmbedding(getSearchQuery(prompt));
@ -63,7 +63,9 @@ public class EmbeddingsService {
}
}
public List<Item<Object, double[]>> createEmbeddings(List<CheckedFile> checkedFiles, @Nullable ProgressIndicator indicator) {
public List<Item<Object, double[]>> createEmbeddings(
List<CheckedFile> checkedFiles,
@Nullable ProgressIndicator indicator) {
var words = new ArrayList<Item<Object, double[]>>();
for (int i = 0; i < checkedFiles.size(); i++) {
try {
@ -81,7 +83,10 @@ public class EmbeddingsService {
}
private String getSearchQuery(String userPrompt) throws JsonProcessingException {
var message = new OpenAIChatCompletionMessage("user", getResourceContent("/prompts/text-generator.txt").replace("{prompt}", userPrompt));
var message = new OpenAIChatCompletionMessage(
"user",
getResourceContent("/prompts/text-generator.txt")
.replace("{prompt}", userPrompt));
var request = new OpenAIChatCompletionRequest.Builder(List.of(message))
.setModel(OpenAIChatCompletionModel.GPT_4)
.setMaxTokens(400)
@ -100,16 +105,20 @@ public class EmbeddingsService {
var fileExtension = checkedFile.getFileExtension();
var codeSplitter = SplitterFactory.getCodeSplitter(fileExtension);
if (codeSplitter != null) {
var chunks = codeSplitter.split(checkedFile.getFileName(), checkedFile.getFileContent());
var chunks = codeSplitter.split(
checkedFile.getFileName(),
checkedFile.getFileContent());
var embeddings = openAIClient.getEmbeddings(chunks);
for (int i = 0; i < chunks.size(); i++) {
prevEmbeddings.add(new Word(chunks.get(i), checkedFile.getFileName(), normalize(embeddings.get(i))));
prevEmbeddings.add(
new Word(chunks.get(i), checkedFile.getFileName(), normalize(embeddings.get(i))));
}
} else {
var chunks = splitText(checkedFile.getFileContent(), 400);
var embeddings = getEmbeddings(chunks);
for (int i = 0; i < chunks.size(); i++) {
prevEmbeddings.add(new Word(chunks.get(i), checkedFile.getFileName(), normalize(embeddings.get(i))));
prevEmbeddings.add(
new Word(chunks.get(i), checkedFile.getFileName(), normalize(embeddings.get(i))));
}
}
}
@ -125,7 +134,8 @@ public class EmbeddingsService {
// TODO: Move to shared module
private static String getResourceContent(String name) {
try (var stream = Objects.requireNonNull(EmbeddingsService.class.getResourceAsStream(name))) {
try (var stream =
Objects.requireNonNull(EmbeddingsService.class.getResourceAsStream(name))) {
return new String(stream.readAllBytes(), StandardCharsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException("Unable to read resource", e);

View file

@ -26,7 +26,9 @@ abstract class CodeSplitter implements Splitter {
@Override
public List<String> split(String fileName, String content) {
chunks = new ArrayList<>();
ParseTreeWalker.DEFAULT.walk(getParseTreeListener(), getParseTree(CharStreams.fromString(content)));
ParseTreeWalker.DEFAULT.walk(
getParseTreeListener(),
getParseTree(CharStreams.fromString(content)));
return chunks;
}
}

View file

@ -37,7 +37,10 @@ public class VectorStore {
public void save(List<Item<Object, double[]>> words) {
var hnswIndex = HnswIndex
.newBuilder(words.get(0).vector().length, DistanceFunctions.DOUBLE_COSINE_DISTANCE, words.size())
.newBuilder(
words.get(0).vector().length,
DistanceFunctions.DOUBLE_COSINE_DISTANCE,
words.size())
.build();
try {
hnswIndex.addAll(words);

View file

@ -34,10 +34,10 @@ public class Word implements Item<Object, double[]> {
@Override
public String toString() {
return "Word{" +
"id='" + id + '\'' +
", vector=" + Arrays.toString(vector) +
'}';
return "Word{"
+ "id='" + id + '\''
+ ", vector=" + Arrays.toString(vector)
+ '}';
}
public String getMeta() {