Skip to content

Commit ebfa2b1

Browse files
committed
add support for chat
1 parent 64b4a88 commit ebfa2b1

File tree

17 files changed

+273
-22
lines changed

17 files changed

+273
-22
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package org.llm4j.api;
2+
3+
import org.apache.commons.lang3.tuple.ImmutablePair;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Map;
8+
9+
public class ChatHistory {
10+
11+
String context;
12+
List<Map.Entry<Message, Message>> exampleList = new ArrayList<>();
13+
List<Message> messageList = new ArrayList<>();
14+
15+
public ChatHistory setContext(String context) {
16+
this.context = context;
17+
return this;
18+
}
19+
20+
public ChatHistory addExample(String text1, String text2) {
21+
Map.Entry<Message, Message> pair = new ImmutablePair<>(new Message(text1), new Message(text1));
22+
exampleList.add(pair);
23+
return this;
24+
}
25+
26+
public ChatHistory addMessage(String content) {
27+
messageList.add(new Message(content));
28+
return this;
29+
}
30+
31+
public ChatHistory addMessage(String author, String content) {
32+
messageList.add(new Message(author, content));
33+
return this;
34+
}
35+
36+
public String getContext() {
37+
return context;
38+
}
39+
40+
public List<Map.Entry<Message, Message>> getExampleList() {
41+
return exampleList;
42+
}
43+
44+
public List<Message> getMessageList() {
45+
return messageList;
46+
}
47+
48+
public static class Message {
49+
50+
private final String author;
51+
private final String content;
52+
53+
public Message(String author, String content) {
54+
this.author = author;
55+
this.content = content;
56+
}
57+
58+
public Message(String content) {
59+
this(null, content);
60+
}
61+
62+
public String getAuthor() {
63+
return author;
64+
}
65+
66+
public String getContent() {
67+
return content;
68+
}
69+
70+
@Override
71+
public String toString() {
72+
String text = "";
73+
if(author!=null && !author.isEmpty()) {
74+
text += author;
75+
}
76+
if(content!=null && !content.isEmpty()) {
77+
text += text.isEmpty() ? content: ":" + content;
78+
}
79+
return text;
80+
}
81+
}
82+
}

llm4j-api/src/main/java/org/llm4j/api/LanguageModel.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33
public interface LanguageModel {
44

55
String process(String text);
6+
7+
String process(ChatHistory history);
68
}
79

llm4j-huggingface/src/main/java/org/llm4j/huggingface/HFApi.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.llm4j.huggingface;
22

3+
import org.llm4j.huggingface.request.TextEmbeddingRequest;
4+
import org.llm4j.huggingface.request.TextGenerationRequest;
5+
import org.llm4j.huggingface.request.TextGenerationResponse;
36
import retrofit2.Call;
47
import retrofit2.http.Body;
58
import retrofit2.http.Headers;

llm4j-huggingface/src/main/java/org/llm4j/huggingface/HFApiClient.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import com.google.gson.GsonBuilder;
55
import okhttp3.OkHttpClient;
66
import org.apache.commons.configuration2.Configuration;
7-
import retrofit2.Response;
7+
import org.llm4j.huggingface.request.TextEmbeddingRequest;
8+
import org.llm4j.huggingface.request.TextGenerationRequest;
9+
import org.llm4j.huggingface.request.TextGenerationResponse;
810
import retrofit2.Retrofit;
911
import retrofit2.converter.gson.GsonConverterFactory;
1012

llm4j-huggingface/src/main/java/org/llm4j/huggingface/HFLanguageModel.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package org.llm4j.huggingface;
22

33
import org.apache.commons.configuration2.Configuration;
4+
import org.llm4j.api.ChatHistory;
45
import org.llm4j.api.LanguageModel;
56
import org.llm4j.api.LanguageModelFactory;
7+
import org.llm4j.huggingface.request.TextGenerationRequest;
8+
import org.llm4j.huggingface.request.TextGenerationResponse;
69

710
public class HFLanguageModel implements LanguageModel {
811

@@ -24,6 +27,11 @@ public String process(String text) {
2427
return response.getGeneratedText();
2528
}
2629

30+
@Override
31+
public String process(ChatHistory history) {
32+
return null;
33+
}
34+
2735
public static final class Builder implements LanguageModelFactory {
2836
private Configuration config;
2937
private HFApiClient client;

llm4j-huggingface/src/main/java/org/llm4j/huggingface/HFRequestOptions.java renamed to llm4j-huggingface/src/main/java/org/llm4j/huggingface/request/HFRequestOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.llm4j.huggingface;
1+
package org.llm4j.huggingface.request;
22

33
import org.apache.commons.configuration2.Configuration;
44

llm4j-huggingface/src/main/java/org/llm4j/huggingface/HFRequestParameters.java renamed to llm4j-huggingface/src/main/java/org/llm4j/huggingface/request/HFRequestParameters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.llm4j.huggingface;
1+
package org.llm4j.huggingface.request;
22

33
import org.apache.commons.configuration2.Configuration;
44

llm4j-huggingface/src/main/java/org/llm4j/huggingface/TextEmbeddingRequest.java renamed to llm4j-huggingface/src/main/java/org/llm4j/huggingface/request/TextEmbeddingRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.llm4j.huggingface;
1+
package org.llm4j.huggingface.request;
22

33
import org.apache.commons.configuration2.Configuration;
44

llm4j-huggingface/src/main/java/org/llm4j/huggingface/TextGenerationRequest.java renamed to llm4j-huggingface/src/main/java/org/llm4j/huggingface/request/TextGenerationRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.llm4j.huggingface;
1+
package org.llm4j.huggingface.request;
22

33
import org.apache.commons.configuration2.Configuration;
44

llm4j-huggingface/src/main/java/org/llm4j/huggingface/TextGenerationResponse.java renamed to llm4j-huggingface/src/main/java/org/llm4j/huggingface/request/TextGenerationResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.llm4j.huggingface;
1+
package org.llm4j.huggingface.request;
22

33
public class TextGenerationResponse {
44

0 commit comments

Comments
 (0)