Skip to content

Commit

Permalink
OpenAI: Use ref origin for API key check
Browse files Browse the repository at this point in the history
  • Loading branch information
cjmalloy committed Apr 10, 2024
1 parent 3ddfa6b commit 065cfac
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 15 deletions.
20 changes: 8 additions & 12 deletions src/main/java/jasper/component/OpenAi.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import com.theokanning.openai.image.ImageResult;
import com.theokanning.openai.service.OpenAiService;
import jasper.client.dto.RefDto;
import jasper.config.Props;
import jasper.errors.NotFoundException;
import jasper.repository.RefRepository;
import okhttp3.MediaType;
Expand All @@ -35,17 +34,14 @@ public class OpenAi {

public static final MediaType TEXT = MediaType.parse("text/plain; charset=utf-8");

@Autowired
Props props;

@Autowired
RefRepository refRepository;

@Autowired
ObjectMapper objectMapper;

public CompletionResult completion(String systemPrompt, String prompt) {
var key = refRepository.findAll(selector("_openai/key" + props.getLocalOrigin()).refSpec());
public CompletionResult completion(String origin, String systemPrompt, String prompt) {
var key = refRepository.findAll(selector("_openai/key" + origin).refSpec());
if (key.isEmpty()) {
throw new NotFoundException("requires openai api key");
}
Expand Down Expand Up @@ -81,8 +77,8 @@ public CompletionResult completion(String systemPrompt, String prompt) {
}
}

public ChatCompletionResult chatCompletion(String prompt, AiConfig config) {
var key = refRepository.findAll(selector("_openai/key" + props.getLocalOrigin()).refSpec());
public ChatCompletionResult chatCompletion(String origin, String prompt, AiConfig config) {
var key = refRepository.findAll(selector("_openai/key" + origin).refSpec());
if (key.isEmpty()) {
throw new NotFoundException("requires openai api key");
}
Expand All @@ -99,8 +95,8 @@ public ChatCompletionResult chatCompletion(String prompt, AiConfig config) {
return service.createChatCompletion(completionRequest);
}

public ImageResult dale(String prompt, DalleConfig config) {
var key = refRepository.findAll(selector("_openai/key" + props.getLocalOrigin()).refSpec());
public ImageResult dale(String origin, String prompt, DalleConfig config) {
var key = refRepository.findAll(selector("_openai/key" + origin).refSpec());
if (key.isEmpty()) {
throw new NotFoundException("requires openai api key");
}
Expand All @@ -116,8 +112,8 @@ public ImageResult dale(String prompt, DalleConfig config) {
return service.createImage(imageRequest);
}

public ChatCompletionResult chat(List<ChatMessage> messages, AiConfig config) {
var key = refRepository.findAll(selector("_openai/key" + props.getLocalOrigin()).refSpec());
public ChatCompletionResult chat(String origin, List<ChatMessage> messages, AiConfig config) {
var key = refRepository.findAll(selector("_openai/key" + origin).refSpec());
if (key.isEmpty()) {
throw new NotFoundException("requires openai api key");
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/jasper/component/delta/Ai.java
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ public void run(Ref ref) throws JsonProcessingException {
config.model = model;
var messages = getChatMessages(ref, exts.values(), plugins, templates, config, new ArrayList<>(context.values()), author, sample);
try {
var res = openAi.chat(messages, config);
var res = openAi.chat(ref.getOrigin(), messages, config);
var reply = res.getChoices().stream().map(ChatCompletionChoice::getMessage).map(ChatMessage::getContent).collect(Collectors.joining("\n\n"));
logger.debug("AI Reply: " + reply);
if (reply.startsWith("```json")) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/jasper/component/delta/Dalle.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public void run(Ref ref) throws JsonProcessingException {
var config = configs.getPluginConfig("+plugin/ai/dalle", ref.getOrigin(), OpenAi.DalleConfig.class);
Ref response;
try {
var res = openAi.dale(getPrompt(ref.getTitle(), ref.getComment()), config);
var res = openAi.dale(ref.getOrigin(), getPrompt(ref.getTitle(), ref.getComment()), config);
var data = res.getData().get(0).getB64Json();
var image = Base64.getDecoder().decode(data);
try {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/jasper/component/delta/Summary.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public void run(Ref ref) {
var config = configs.getPluginConfig("+plugin/summary", ref.getOrigin(), SummaryConfig.class);
var response = new Ref();
try {
var res = openAi.chatCompletion(String.join("\n\n",
var res = openAi.chatCompletion(ref.getOrigin(), String.join("\n\n",
"Title: " + ref.getTitle(),
"Tags: " + String.join(", ", ref.getTags()),
ref.getComment()), config);
Expand Down

0 comments on commit 065cfac

Please sign in to comment.