Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 538774d
Merge: 1a5f744 dcd7e14
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Thu Feb 8 08:50:21 2024 +0100

    Merge branch 'main' into update-modelid

commit 1a5f744
Merge: 699eec8 7e43195
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Feb 7 17:35:02 2024 +0100

    Merge branch 'main' into update-modelid

commit 699eec8
Merge: 60cf261 7e43195
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Feb 7 10:30:34 2024 +0100

    Merge branch 'main' into update-modelid

commit 60cf261
Merge: 2f726c2 3a7d3bd
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Feb 7 10:22:51 2024 +0100

    Merge branch 'main' into update-modelid

commit 2f726c2
Merge: 5bdbbd6 59508ca
Author: John Oliver <1615532+johnoliver@users.noreply.github.com>
Date:   Tue Feb 6 13:02:30 2024 +0000

    Merge branch 'main' into update-modelid

commit 5bdbbd6
Merge: ffcf68c eed5193
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Feb 2 22:44:25 2024 +0100

    Merge branch 'main' into update-modelid

commit ffcf68c
Merge: 3a34f5d 52e317a
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Feb 2 12:15:47 2024 +0100

    Merge branch 'main' into update-modelid

commit 3a34f5d
Merge: 7933961 e582951
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Feb 2 12:15:13 2024 +0100

    Merge remote-tracking branch 'origin/update-modelid' into update-modelid

commit 7933961
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Feb 2 12:14:50 2024 +0100

    make Deployment Name optional and set modelid with default as requested in review

commit b74843e
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Feb 2 12:13:39 2024 +0100

    make Deployment Name optional and set modelid with default as requested in review

commit e582951
Merge: f7f1664 5953beb
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Jan 26 22:56:33 2024 +0100

    Merge branch 'main' into update-modelid

commit f7f1664
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 22:51:38 2024 +0100

    spring boot starter gets tested with samples

commit be6cf95
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 12:46:23 2024 +0100

    Need to use JDK 11 to build for JDK 8

commit 1af0f61
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 12:43:16 2024 +0100

    Need to use JDK 11 to build for JDK 8

commit 5bebe6c
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 12:24:46 2024 +0100

    move starter to example package

commit 2f8a839
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 10:14:20 2024 +0100

    switch back to jdk 8 and 17 as required by PM

commit 9fdf375
Merge: 1e66ccb 038ca45
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 26 10:08:32 2024 +0100

    Merge branch 'main' of https://github.com/SandraAhlgrimm/semantic-kernel into update-modelid

    # Conflicts:
    #	.github/workflows/java-build.yml

commit 038ca45
Merge: 21d161a e0ccee0
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Jan 26 10:03:52 2024 +0100

    Merge branch 'microsoft:main' into main

commit 21d161a
Merge: a402026 4445327
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Jan 26 09:31:59 2024 +0100

    Merge pull request #1 from bbenz/main

    bbenz Update java-build.yml

commit a402026
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Jan 26 09:31:19 2024 +0100

    Update java-build.yml

commit 4445327
Author: Brian Benz <bbenz@microsoft.com>
Date:   Thu Jan 25 16:07:29 2024 -0800

    bbenz Update java-build.yml

    Set JDK to 11 or 17

commit 1e66ccb
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Thu Jan 25 21:32:07 2024 +0100

    Update java-build.yml

    update workflow as @bbenz suggested

commit b69342a
Merge: 79627be e0ccee0
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Thu Jan 25 21:30:42 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit 79627be
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Thu Jan 25 18:22:56 2024 +0100

    jdk 17 for spring boot starter

commit 14e17ad
Merge: 4570ad2 00fbab2
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Wed Jan 24 21:41:47 2024 +0100

    Merge remote-tracking branch 'origin/update-modelid' into update-modelid

commit 4570ad2
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Wed Jan 24 21:41:14 2024 +0100

    cleaned up and ready for PR

commit 00fbab2
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Jan 24 21:39:57 2024 +0100

    Update java-integration-tests.yml

commit f5baf9e
Merge: f76a4b0 f959256
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Jan 24 21:33:28 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit f76a4b0
Merge: a8cf41e e4874bb
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Mon Jan 22 16:08:03 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit a8cf41e
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Mon Jan 22 16:03:22 2024 +0100

    cleaned up and ready for PR

commit 8d3d26a
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Thu Jan 18 22:43:40 2024 +0100

    maven still needs a cleanup

commit f811bc3
Merge: 43b0a7f c87e45e
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Wed Jan 17 22:27:39 2024 +0100

    Merge remote-tracking branch 'origin/update-modelid' into update-modelid

commit c87e45e
Merge: 355eb68 fe23d41
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Jan 17 22:20:29 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit 43b0a7f
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Wed Jan 17 22:19:31 2024 +0100

    add tests, maven needs a cleanup

commit 355eb68
Merge: 4277528 f9bef63
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Tue Jan 16 15:40:51 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit 4277528
Merge: f2cab02 9db47e5
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Mon Jan 8 14:22:56 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit f2cab02
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 16:58:21 2024 +0100

    update maven dependencies, test needs to be finished

commit ec31872
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 15:52:49 2024 +0100

    add spring boot starter

commit ff87caa
Merge: c1ccfe0 11369bf
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 13:16:21 2024 +0100

    Merge remote-tracking branch 'origin/update-modelid' into update-modelid

commit c1ccfe0
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 13:16:08 2024 +0100

    add spring boot starter

commit 11369bf
Merge: ac73cb8 833a2d7
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Jan 5 13:13:37 2024 +0100

    Merge branch 'microsoft:main' into update-modelid

commit ac73cb8
Merge: c1f4ef8 4b9dbed
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 13:11:50 2024 +0100

    Merge branch 'update-modelid' of https://github.com/SandraAhlgrimm/semantic-kernel into update-modelid

commit c1f4ef8
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Jan 5 13:06:20 2024 +0100

    add spring boot starter

commit 4b9dbed
Merge: 9da9b38 aa62b14
Author: John Oliver <1615532+johnoliver@users.noreply.github.com>
Date:   Thu Jan 4 12:46:38 2024 +0000

    Merge branch 'main' into update-modelid

commit 53d4bf7
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Wed Jan 3 20:14:32 2024 +0100

    add spring boot starter

commit 9da9b38
Merge: a3782cf 79908b0
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Wed Jan 3 13:24:58 2024 +0100

    Merge branch 'main' into update-modelid

commit a3782cf
Merge: a693099 240a2cb
Author: Sandra Ahlgrimm <sandra.kriemann@gmail.com>
Date:   Fri Dec 22 11:40:14 2023 +0100

    Merge branch 'microsoft:main' into update-modelid

commit a693099
Author: SandraAhlgrimm <sakriema@microsoft.com>
Date:   Fri Dec 22 11:38:59 2023 +0100

    update modelid to the available davinci-002 on Azure Open AI
  • Loading branch information
SandraAhlgrimm authored and johnoliver committed Feb 13, 2024
1 parent 50444e7 commit 1b2e2fb
Show file tree
Hide file tree
Showing 19 changed files with 428 additions and 114 deletions.
14 changes: 11 additions & 3 deletions .github/workflows/java-build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: Build Java Semantic Kernel

# Triggers the workflow on manual dispatch, push, and pull request events
# for the specified branches and paths
on:
workflow_dispatch:
push:
Expand All @@ -15,6 +17,7 @@ permissions:
contents: read

jobs:
# Determines if Java files have changed
paths-filter:
runs-on: ubuntu-latest
outputs:
Expand All @@ -28,21 +31,22 @@ jobs:
java:
- 'java/**'
- '**/java/**'
# run only if 'java' files were changed
- name: java tests
if: steps.filter.outputs.java == 'true'
run: echo "Java file"
# run only if not 'java' files were changed
- name: not java tests
if: steps.filter.outputs.java != 'true'
run: echo "NOT java file"

# Builds and tests the Java project
java-build:
runs-on: ubuntu-latest
needs: paths-filter
if: needs.paths-filter.outputs.javaChanges == 'true'
strategy:
fail-fast: false
matrix:
# Defines a matrix strategy for JDK versions 8 and 17
java-versions: [8, 17]

name: Java CI on JDK${{ matrix.java-versions }}
Expand All @@ -63,20 +67,24 @@ jobs:
echo "JDK_VERSION=$version" >> $GITHUB_OUTPUT
fi
- uses: actions/setup-java@v3
# Sets up the specified JDK version from the matrix
uses: actions/setup-java@v3
with:
java-version: ${{ steps.set-jdk.outputs.JDK_VERSION }}
distribution: microsoft
cache: maven

# Builds the project with Maven using the matrix JDK version
- name: Build with Maven
run: ./mvnw -B -Pbug-check -DskipTests -Pcompile-jdk${{ matrix.java-versions }} clean install --file pom.xml
working-directory: java

# Runs tests with Maven using the matrix JDK version
- name: Run tests
run: ./mvnw -B -Pbug-check -Pcompile-jdk${{ matrix.java-versions }} test --file pom.xml
working-directory: java

# Uploads test artifacts for each JDK version
- uses: actions/upload-artifact@v2
if: always()
with:
Expand Down
1 change: 1 addition & 0 deletions java/samples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<modules>
<module>sample-code</module>
<module>semantickernel-samples-guice</module>
<module>semantickernel-spring-starter</module>
</modules>

<properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,38 +21,42 @@
*/
public class Example04_CombineLLMPromptsAndNativeCode {

public static class SearchEngineSkill {

@DefineSKFunction(description = "Search for answer", name = "search")
public Mono<String> search(
@SKFunctionInputAttribute(description = "Text to search")
String input) {
return Mono.just("Gran Torre Santiago is the tallest building in South America");
public static class SearchEngineSkill {

@DefineSKFunction(description = "Search for answer", name = "search")
public Mono<String> search(
@SKFunctionInputAttribute(description = "Text to search")
String input) {
return Mono.just("Gran Torre Santiago is the tallest building in South America");
}
}
}

public static void main(String[] args) throws ConfigurationException {
OpenAIAsyncClient client = SamplesConfig.getClient();
public static void main(String[] args) throws ConfigurationException {
OpenAIAsyncClient client = SamplesConfig.getClient();

TextCompletion textCompletion = SKBuilders.textCompletion()
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

TextCompletion textCompletion = SKBuilders.chatCompletion()
.withModelId("gpt-35-turbo-2")
.withOpenAIClient(client)
.build();
Kernel kernel = SKBuilders.kernel().withDefaultAIService(textCompletion).build();
kernel.importSkill(new SearchEngineSkill(), null);
kernel.importSkillFromDirectory("SummarizeSkill", SampleSkillsUtil.detectSkillDirLocation(),
"SummarizeSkill");

Kernel kernel = SKBuilders.kernel().withDefaultAIService(textCompletion).build();
kernel.importSkill(new SearchEngineSkill(), null);
kernel.importSkillFromDirectory("SummarizeSkill", SampleSkillsUtil.detectSkillDirLocation(),
"SummarizeSkill");

// Run
String ask = "What's the tallest building in South America?";
// Run
String ask = "What's the tallest building in South America?";

Mono<SKContext> result =
kernel.runAsync(
ask,
kernel.getSkills().getFunction("Search", null),
kernel.getSkill("SummarizeSkill").getFunction("Summarize", null));
Mono<SKContext> result =
kernel.runAsync(ask, kernel.getSkills().getFunction("Search", null));

System.out.println(result.block().getResult());
}
result =
kernel.runAsync(
ask,
kernel.getSkills().getFunction("Search", null),
kernel.getSkill("SummarizeSkill").getFunction("Summarize", null));

System.out.println(result.block().getResult());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static void main(String[] args) throws ConfigurationException {
OpenAIAsyncClient client = SamplesConfig.getClient();

TextCompletion textCompletion = SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,98 +11,98 @@
import com.microsoft.semantickernel.semanticfunctions.PromptTemplateConfig;

/**
* Show how to invoke a Native Function written in Java from a Semantic Function written in natural
* language
* Show how to invoke a Native Function written in Java
* from a Semantic Function written in natural language
* <p>
* Refer to the <a href=
* "https://github.com/microsoft/semantic-kernel/blob/experimental-java/java/samples/sample-code/README.md">
* README</a> for configuring your environment to run the examples.
*/
public class Example06_TemplateLanguage {

public static void main(String[] args) throws ConfigurationException {
System.out.println("======== TemplateLanguage ========");
public static void main(String[] args) throws ConfigurationException {
System.out.println("======== TemplateLanguage ========");

OpenAIAsyncClient client = SamplesConfig.getClient();
OpenAIAsyncClient client = SamplesConfig.getClient();

Kernel kernel = SKBuilders.kernel()
.withDefaultAIService(SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withOpenAIClient(client)
.build())
.build();
Kernel kernel = SKBuilders.kernel()
.withDefaultAIService(SKBuilders.textCompletion()
.withModelId("davinci-002")
.withOpenAIClient(client)
.build())
.build();

// Load native skill into the kernel skill collection, sharing its functions
// with prompt templates
// Functions loaded here are available as "time.*"
kernel.importSkill(new TimeSkill(), "time");
// Load native skill into the kernel skill collection, sharing its functions
// with prompt templates
// Functions loaded here are available as "time.*"
kernel.importSkill(new TimeSkill(), "time");

// Semantic Function invoking time.Date and time.Time native functions
String functionDefinition = """
Today is: {{time.Date}}
Current time is: {{time.Time}}
// Semantic Function invoking time.Date and time.Time native functions
String functionDefinition = """
Today is: {{time.Date}}
Current time is: {{time.Time}}
Answer to the following questions using JSON syntax, including the data used.
Is it morning, afternoon, evening, or night (morning/afternoon/evening/night)?
Is it weekend time (weekend/not weekend)?
""";
Answer to the following questions using JSON syntax, including the data used.
Is it morning, afternoon, evening, or night (morning/afternoon/evening/night)?
Is it weekend time (weekend/not weekend)?
""";

// This allows to see the prompt before it's sent to OpenAI
System.out.println("--- Rendered Prompt");
// This allows to see the prompt before it's sent to OpenAI
System.out.println("--- Rendered Prompt");

var promptRenderer = SKBuilders.promptTemplate()
.withPromptTemplateConfig(new PromptTemplateConfig())
.withPromptTemplate(functionDefinition)
.withPromptTemplateEngine(kernel.getPromptTemplateEngine())
.build();
var promptRenderer = SKBuilders.promptTemplate()
.withPromptTemplateConfig(new PromptTemplateConfig())
.withPromptTemplate(functionDefinition)
.withPromptTemplateEngine(kernel.getPromptTemplateEngine())
.build();

SKContext skContext = SKBuilders
.context()
.withSkills(kernel.getSkills())
.build();
SKContext skContext = SKBuilders
.context()
.withSkills(kernel.getSkills())
.build();

var renderedPrompt = promptRenderer.renderAsync(skContext);
System.out.println(renderedPrompt.block());
var renderedPrompt = promptRenderer.renderAsync(skContext);
System.out.println(renderedPrompt.block());

// Run the prompt / semantic function
var kindOfDay = kernel
.getSemanticFunctionBuilder()
.withPromptTemplate(functionDefinition)
.withRequestSettings(
SKBuilders.completionRequestSettings()
.temperature(0)
.topP(0)
.maxTokens(256)
.frequencyPenalty(0)
.presencePenalty(0)
.build())
.build();
// Run the prompt / semantic function
var kindOfDay = kernel
.getSemanticFunctionBuilder()
.withPromptTemplate(functionDefinition)
.withRequestSettings(
SKBuilders.completionRequestSettings()
.temperature(0)
.topP(0)
.maxTokens(256)
.frequencyPenalty(0)
.presencePenalty(0)
.build())
.build();

// Show the result
System.out.println("--- Semantic Function result");
var result = kindOfDay.invokeAsync("").block().getResult();
System.out.println(result);
/*
* OUTPUT:
*
* --- Rendered Prompt
*
* Today is: Friday, April 28, 2023
* Current time is: 11:04:30 PM
*
* Answer to the following questions using JSON syntax, including the data used.
* Is it morning, afternoon, evening, or night
* (morning/afternoon/evening/night)?
* Is it weekend time (weekend/not weekend)?
*
* --- Semantic Function result
*
* {
* "date": "Friday, April 28, 2023",
* "time": "11:04:30 PM",
* "period": "night",
* "weekend": "weekend"
* }
*/
}
// Show the result
System.out.println("--- Semantic Function result");
var result = kindOfDay.invokeAsync("").block().getResult();
System.out.println(result);
/*
* OUTPUT:
*
* --- Rendered Prompt
*
* Today is: Friday, April 28, 2023
* Current time is: 11:04:30 PM
*
* Answer to the following questions using JSON syntax, including the data used.
* Is it morning, afternoon, evening, or night
* (morning/afternoon/evening/night)?
* Is it weekend time (weekend/not weekend)?
*
* --- Semantic Function result
*
* {
* "date": "Friday, April 28, 2023",
* "time": "11:04:30 PM",
* "period": "night",
* "weekend": "weekend"
* }
*/
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public static void main(String[] args) throws ConfigurationException {
String prompt = "{{$input}}\nSummarize the content above.";

TextCompletion textCompletion = SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static void main(String[] args) throws ConfigurationException {
OpenAIAsyncClient client = SamplesConfig.getClient();

TextCompletion textCompletion = SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,11 @@ private static void getConversationTopicsAsync(OpenAIAsyncClient client) {

private static Kernel initializeKernel(OpenAIAsyncClient client) {
TextCompletion textCompletion = SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

return SKBuilders.kernel()
.withAIService("text-davinci-003", textCompletion, true, TextCompletion.class).build();
.withAIService("davinci-002", textCompletion, true, TextCompletion.class).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public static Mono<Void> runAsync() {

TextCompletion textCompletionService =
SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ private static Kernel getKernel(boolean useChat) throws ConfigurationException {
} else {
textCompletion = SKBuilders.textCompletion()
.withOpenAIClient(client)
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static void main(String[] args) throws IOException, ConfigurationExceptio
OpenAIAsyncClient client = SamplesConfig.getClient();
var kernel = SKBuilders.kernel()
.withDefaultAIService(SKBuilders.textCompletion()
.withModelId("text-davinci-003")
.withModelId("davinci-002")
.withOpenAIClient(client)
.build())
.build();
Expand Down
Loading

0 comments on commit 1b2e2fb

Please sign in to comment.