forked from Mirror/ollama4j
		
	Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 2a887f5015 | ||
|   | 7e3dddf1bb | ||
|   | fe95a7df2a | ||
|   | 98f6a30c6b | ||
|   | 00288053bf | ||
|   | 6a7feb98bd | ||
|   | 770d511067 | ||
|   | b57fc1f818 | ||
|   | 01c5a8f07f | ||
|   | 243b8a3747 | 
							
								
								
									
										4
									
								
								.github/workflows/maven-publish.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/maven-publish.yml
									
									
									
									
										vendored
									
									
								
							| @@ -49,6 +49,10 @@ jobs: | ||||
|             ${{ runner.os }}-maven- | ||||
|       - name: Build | ||||
|         run: mvn -B -ntp clean install | ||||
|       - name: Upload coverage reports to Codecov | ||||
|         uses: codecov/codecov-action@v3 | ||||
|         env: | ||||
|           CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||||
|       - name: Publish to GitHub Packages Apache Maven | ||||
|         #        if: > | ||||
|         #          github.event_name != 'pull_request' && | ||||
|   | ||||
							
								
								
									
										58
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								README.md
									
									
									
									
									
								
							| @@ -2,8 +2,33 @@ | ||||
|  | ||||
| <img src='https://raw.githubusercontent.com/amithkoujalgi/ollama4j/65a9d526150da8fcd98e2af6a164f055572bf722/ollama4j.jpeg' width='100' alt="ollama4j-icon"> | ||||
|  | ||||
| A Java library (wrapper/binding) | ||||
| for [Ollama](https://github.com/jmorganca/ollama/blob/main/docs/api.md) APIs. | ||||
| A Java library (wrapper/binding) for [Ollama](https://ollama.ai/) server. | ||||
|  | ||||
| Find more details on the [website](https://amithkoujalgi.github.io/ollama4j/). | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Table of Contents | ||||
|  | ||||
| - [How does it work?](#how-does-it-work) | ||||
| - [Requirements](#requirements) | ||||
| - [Installation](#installation) | ||||
| - [API Spec](#api-spec) | ||||
| - [Demo APIs](#try-out-the-apis-with-ollama-server) | ||||
| - [Development](#development) | ||||
| - [Contributions](#get-involved) | ||||
| - [References](#references) | ||||
|  | ||||
| #### How does it work? | ||||
|  | ||||
| ```mermaid | ||||
|   flowchart LR | ||||
| @@ -17,26 +42,6 @@ for [Ollama](https://github.com/jmorganca/ollama/blob/main/docs/api.md) APIs. | ||||
|     end | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Table of Contents | ||||
|  | ||||
| - [Requirements](#requirements) | ||||
| - [Installation](#installation) | ||||
| - [API Spec](#api-spec) | ||||
| - [Demo APIs](#try-out-the-apis-with-ollama-server) | ||||
| - [Development](#development) | ||||
| - [Contributions](#get-involved) | ||||
|  | ||||
| #### Requirements | ||||
|  | ||||
|  | ||||
| @@ -64,7 +69,7 @@ In your Maven project, add this dependency: | ||||
| </dependency> | ||||
| ``` | ||||
|  | ||||
| Latest release:  | ||||
| Latest release: | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -76,7 +81,7 @@ Latest release: | ||||
|  | ||||
| #### API Spec | ||||
|  | ||||
| Find the full `Javadoc` (API specifications) [here](https://amithkoujalgi.github.io/ollama4j/). | ||||
| Find the full API specifications on the [website](https://amithkoujalgi.github.io/ollama4j/). | ||||
|  | ||||
| #### Development | ||||
|  | ||||
| @@ -117,6 +122,7 @@ Actions CI workflow. | ||||
| - [x] Use lombok | ||||
| - [x] Update request body creation with Java objects | ||||
| - [ ] Async APIs for images | ||||
| - [ ] Add custom headers to requests | ||||
| - [ ] Add additional params for `ask` APIs such as: | ||||
|     - `options`: additional model parameters for the Modelfile such as `temperature` | ||||
|     - `system`: system prompt to (overrides what is defined in the Modelfile) | ||||
| @@ -138,3 +144,7 @@ of contribution is much appreciated. | ||||
|  | ||||
| The nomenclature and the icon have been adopted from the incredible [Ollama](https://ollama.ai/) | ||||
| project. | ||||
|  | ||||
| ### References | ||||
|  | ||||
| - [Ollama REST APIs](https://github.com/jmorganca/ollama/blob/main/docs/api.md) | ||||
							
								
								
									
										507
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										507
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -4,20 +4,20 @@ | ||||
|  | ||||
|     <groupId>io.github.amithkoujalgi</groupId> | ||||
|     <artifactId>ollama4j</artifactId> | ||||
|     <version>1.0.32</version> | ||||
|     <version>1.0.35</version> | ||||
|  | ||||
|     <name>Ollama4j</name> | ||||
|     <description>Java library for interacting with Ollama API.</description> | ||||
|     <url>https://github.com/amithkoujalgi/ollama4j</url> | ||||
|   <name>Ollama4j</name> | ||||
|   <description>Java library for interacting with Ollama API.</description> | ||||
|   <url>https://github.com/amithkoujalgi/ollama4j</url> | ||||
|  | ||||
|     <properties> | ||||
|         <maven.compiler.source>11</maven.compiler.source> | ||||
|         <maven.compiler.target>11</maven.compiler.target> | ||||
|         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
|         <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> | ||||
|         <maven-failsafe-plugin.version>3.0.0-M5</maven-failsafe-plugin.version> | ||||
|         <lombok.version>1.18.30</lombok.version> | ||||
|     </properties> | ||||
|   <properties> | ||||
|     <maven.compiler.source>11</maven.compiler.source> | ||||
|     <maven.compiler.target>11</maven.compiler.target> | ||||
|     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
|     <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> | ||||
|     <maven-failsafe-plugin.version>3.0.0-M5</maven-failsafe-plugin.version> | ||||
|     <lombok.version>1.18.30</lombok.version> | ||||
|   </properties> | ||||
|  | ||||
|     <developers> | ||||
|         <developer> | ||||
| @@ -28,230 +28,273 @@ | ||||
|         </developer> | ||||
|     </developers> | ||||
|  | ||||
|     <licenses> | ||||
|         <license> | ||||
|             <name>MIT License</name> | ||||
|             <url>https://raw.githubusercontent.com/amithkoujalgi/ollama4j/main/LICENSE</url> | ||||
|         </license> | ||||
|     </licenses> | ||||
|   <licenses> | ||||
|     <license> | ||||
|       <name>MIT License</name> | ||||
|       <url>https://raw.githubusercontent.com/amithkoujalgi/ollama4j/main/LICENSE</url> | ||||
|     </license> | ||||
|   </licenses> | ||||
|  | ||||
|     <scm> | ||||
|         <connection>scm:git:git@github.com:amithkoujalgi/ollama4j.git</connection> | ||||
|         <developerConnection>scm:git:https://github.com/amithkoujalgi/ollama4j.git</developerConnection> | ||||
|         <url>https://github.com/amithkoujalgi/ollama4j</url> | ||||
|         <tag>v1.0.32</tag> | ||||
|     </scm> | ||||
|   <scm> | ||||
|     <connection>scm:git:git@github.com:amithkoujalgi/ollama4j.git</connection> | ||||
|     <developerConnection>scm:git:https://github.com/amithkoujalgi/ollama4j.git</developerConnection> | ||||
|     <url>https://github.com/amithkoujalgi/ollama4j</url> | ||||
|     <tag>v1.0.35</tag> | ||||
|   </scm> | ||||
|  | ||||
|     <build> | ||||
|   <build> | ||||
|     <plugins> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-source-plugin</artifactId> | ||||
|         <version>3.3.0</version> | ||||
|         <executions> | ||||
|           <execution> | ||||
|             <id>attach-sources</id> | ||||
|             <goals> | ||||
|               <goal>jar-no-fork</goal> | ||||
|             </goals> | ||||
|           </execution> | ||||
|         </executions> | ||||
|       </plugin> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-javadoc-plugin</artifactId> | ||||
|         <version>3.5.0</version> | ||||
|         <executions> | ||||
|           <execution> | ||||
|             <id>attach-javadocs</id> | ||||
|             <goals> | ||||
|               <goal>jar</goal> | ||||
|             </goals> | ||||
|           </execution> | ||||
|         </executions> | ||||
|       </plugin> | ||||
|       <!--            <plugin>--> | ||||
|       <!--                <groupId>org.apache.maven.plugins</groupId>--> | ||||
|       <!--                <artifactId>maven-gpg-plugin</artifactId>--> | ||||
|       <!--                <version>1.5</version>--> | ||||
|       <!--                <executions>--> | ||||
|       <!--                    <execution>--> | ||||
|       <!--                        <id>sign-artifacts</id>--> | ||||
|       <!--                        <phase>verify</phase>--> | ||||
|       <!--                        <goals>--> | ||||
|       <!--                            <goal>sign</goal>--> | ||||
|       <!--                        </goals>--> | ||||
|       <!--                        <configuration>--> | ||||
|       <!--                            <!– This is necessary for gpg to not try to use the pinentry programs –>--> | ||||
|       <!--                            <gpgArguments>--> | ||||
|       <!--                                <arg>--pinentry-mode</arg>--> | ||||
|       <!--                                <arg>loopback</arg>--> | ||||
|       <!--                            </gpgArguments>--> | ||||
|       <!--                        </configuration>--> | ||||
|       <!--                    </execution>--> | ||||
|       <!--                </executions>--> | ||||
|       <!--            </plugin>--> | ||||
|       <!-- Surefire Plugin for Unit Tests --> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-surefire-plugin</artifactId> | ||||
|         <version>${maven-surefire-plugin.version}</version> | ||||
|         <configuration> | ||||
|           <skipTests>${skipUnitTests}</skipTests> | ||||
|           <includes> | ||||
|             <include>**/unittests/*.java</include> | ||||
|           </includes> | ||||
|         </configuration> | ||||
|       </plugin> | ||||
|  | ||||
|       <!-- Failsafe Plugin for Integration Tests --> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-failsafe-plugin</artifactId> | ||||
|         <version>${maven-failsafe-plugin.version}</version> | ||||
|         <configuration> | ||||
|           <includes> | ||||
|             <include>**/integrationtests/*.java</include> | ||||
|           </includes> | ||||
|           <excludes> | ||||
|             <exclude>**/unittests/*.java</exclude> | ||||
|           </excludes> | ||||
|           <skipTests>${skipIntegrationTests}</skipTests> | ||||
|         </configuration> | ||||
|         <executions> | ||||
|           <execution> | ||||
|             <goals> | ||||
|               <goal>integration-test</goal> | ||||
|               <goal>verify</goal> | ||||
|             </goals> | ||||
|           </execution> | ||||
|         </executions> | ||||
|       </plugin> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-release-plugin</artifactId> | ||||
|         <version>3.0.1</version> | ||||
|         <configuration> | ||||
|           <!--                    <goals>install</goals>--> | ||||
|           <tagNameFormat>v@{project.version}</tagNameFormat> | ||||
|         </configuration> | ||||
|       </plugin> | ||||
|     </plugins> | ||||
|   </build> | ||||
|  | ||||
|   <dependencies> | ||||
|     <dependency> | ||||
|       <groupId>org.projectlombok</groupId> | ||||
|       <artifactId>lombok</artifactId> | ||||
|       <version>${lombok.version}</version> | ||||
|       <scope>provided</scope> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|       <groupId>com.fasterxml.jackson.core</groupId> | ||||
|       <artifactId>jackson-databind</artifactId> | ||||
|       <version>2.15.3</version> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|       <groupId>ch.qos.logback</groupId> | ||||
|       <artifactId>logback-classic</artifactId> | ||||
|       <version>1.4.12</version> | ||||
|       <scope>test</scope> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|       <groupId>org.slf4j</groupId> | ||||
|       <artifactId>slf4j-api</artifactId> | ||||
|       <version>2.0.9</version> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|       <groupId>org.junit.jupiter</groupId> | ||||
|       <artifactId>junit-jupiter-api</artifactId> | ||||
|       <version>5.10.0</version> | ||||
|       <scope>test</scope> | ||||
|     </dependency> | ||||
|     <dependency> | ||||
|       <groupId>org.mockito</groupId> | ||||
|       <artifactId>mockito-core</artifactId> | ||||
|       <version>4.1.0</version> | ||||
|       <scope>test</scope> | ||||
|     </dependency> | ||||
|   </dependencies> | ||||
|  | ||||
|   <distributionManagement> | ||||
|     <snapshotRepository> | ||||
|       <id>ossrh</id> | ||||
|       <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> | ||||
|     </snapshotRepository> | ||||
|     <repository> | ||||
|       <id>ossrh</id> | ||||
|       <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2</url> | ||||
|     </repository> | ||||
|   </distributionManagement> | ||||
|  | ||||
|   <profiles> | ||||
|     <profile> | ||||
|       <id>unit-tests</id> | ||||
|       <properties> | ||||
|         <test.env>unit</test.env> | ||||
|         <skipUnitTests>false</skipUnitTests> | ||||
|         <skipIntegrationTests>true</skipIntegrationTests> | ||||
|       </properties> | ||||
|       <activation> | ||||
|         <activeByDefault>true</activeByDefault> | ||||
|       </activation> | ||||
|       <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-source-plugin</artifactId> | ||||
|                 <version>3.3.0</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <id>attach-sources</id> | ||||
|                         <goals> | ||||
|                             <goal>jar-no-fork</goal> | ||||
|                         </goals> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|             </plugin> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-javadoc-plugin</artifactId> | ||||
|                 <version>3.5.0</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <id>attach-javadocs</id> | ||||
|                         <goals> | ||||
|                             <goal>jar</goal> | ||||
|                         </goals> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|             </plugin> | ||||
|             <!--            <plugin>--> | ||||
|             <!--                <groupId>org.apache.maven.plugins</groupId>--> | ||||
|             <!--                <artifactId>maven-gpg-plugin</artifactId>--> | ||||
|             <!--                <version>1.5</version>--> | ||||
|             <!--                <executions>--> | ||||
|             <!--                    <execution>--> | ||||
|             <!--                        <id>sign-artifacts</id>--> | ||||
|             <!--                        <phase>verify</phase>--> | ||||
|             <!--                        <goals>--> | ||||
|             <!--                            <goal>sign</goal>--> | ||||
|             <!--                        </goals>--> | ||||
|             <!--                        <configuration>--> | ||||
|             <!--                            <!– This is necessary for gpg to not try to use the pinentry programs –>--> | ||||
|             <!--                            <gpgArguments>--> | ||||
|             <!--                                <arg>--pinentry-mode</arg>--> | ||||
|             <!--                                <arg>loopback</arg>--> | ||||
|             <!--                            </gpgArguments>--> | ||||
|             <!--                        </configuration>--> | ||||
|             <!--                    </execution>--> | ||||
|             <!--                </executions>--> | ||||
|             <!--            </plugin>--> | ||||
|             <!-- Surefire Plugin for Unit Tests --> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-surefire-plugin</artifactId> | ||||
|                 <version>${maven-surefire-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <skipTests>${skipUnitTests}</skipTests> | ||||
|                     <includes> | ||||
|                         <include>**/unittests/*.java</include> | ||||
|                     </includes> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|  | ||||
|             <!-- Failsafe Plugin for Integration Tests --> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-failsafe-plugin</artifactId> | ||||
|                 <version>${maven-failsafe-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <includes> | ||||
|                         <include>**/integrationtests/*.java</include> | ||||
|                     </includes> | ||||
|                     <excludes> | ||||
|                         <exclude>**/unittests/*.java</exclude> | ||||
|                     </excludes> | ||||
|                     <skipTests>${skipIntegrationTests}</skipTests> | ||||
|                 </configuration> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <goals> | ||||
|                             <goal>integration-test</goal> | ||||
|                             <goal>verify</goal> | ||||
|                         </goals> | ||||
|                     </execution> | ||||
|                 </executions> | ||||
|             </plugin> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-release-plugin</artifactId> | ||||
|                 <version>3.0.1</version> | ||||
|                 <configuration> | ||||
|                     <!--                    <goals>install</goals>--> | ||||
|                     <tagNameFormat>v@{project.version}</tagNameFormat> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|           <plugin> | ||||
|             <groupId>org.jacoco</groupId> | ||||
|             <artifactId>jacoco-maven-plugin</artifactId> | ||||
|             <version>0.8.7</version> | ||||
|             <executions> | ||||
|               <execution> | ||||
|                 <goals> | ||||
|                   <goal>prepare-agent</goal> | ||||
|                 </goals> | ||||
|               </execution> | ||||
|               <execution> | ||||
|                 <id>report</id> | ||||
|                 <phase>test</phase> | ||||
|                 <goals> | ||||
|                   <goal>report</goal> | ||||
|                 </goals> | ||||
|               </execution> | ||||
|             </executions> | ||||
|           </plugin> | ||||
|         </plugins> | ||||
|     </build> | ||||
|       </build> | ||||
|     </profile> | ||||
|     <profile> | ||||
|       <id>integration-tests</id> | ||||
|       <properties> | ||||
|         <test.env>integration</test.env> | ||||
|         <skipUnitTests>true</skipUnitTests> | ||||
|         <skipIntegrationTests>false</skipIntegrationTests> | ||||
|       </properties> | ||||
|     </profile> | ||||
|     <profile> | ||||
|       <id>ci-cd</id> | ||||
|       <properties> | ||||
|         <test.env>unit</test.env> | ||||
|         <skipUnitTests>true</skipUnitTests> | ||||
|         <skipIntegrationTests>true</skipIntegrationTests> | ||||
|       </properties> | ||||
|       <build> | ||||
|         <plugins> | ||||
|           <plugin> | ||||
|             <groupId>org.apache.maven.plugins</groupId> | ||||
|             <artifactId>maven-gpg-plugin</artifactId> | ||||
|             <version>3.1.0</version> | ||||
|             <executions> | ||||
|               <execution> | ||||
|                 <id>sign-artifacts</id> | ||||
|                 <phase>verify</phase> | ||||
|                 <goals> | ||||
|                   <goal>sign</goal> | ||||
|                 </goals> | ||||
|                 <configuration> | ||||
|                   <!-- Prevent gpg from using pinentry programs. Fixes: | ||||
|                        gpg: signing failed: Inappropriate ioctl for device --> | ||||
|                   <gpgArguments> | ||||
|                     <arg>--pinentry-mode</arg> | ||||
|                     <arg>loopback</arg> | ||||
|                   </gpgArguments> | ||||
|                 </configuration> | ||||
|               </execution> | ||||
|             </executions> | ||||
|           </plugin> | ||||
|           <plugin> | ||||
|             <groupId>org.sonatype.plugins</groupId> | ||||
|             <artifactId>nexus-staging-maven-plugin</artifactId> | ||||
|             <version>1.6.13</version> | ||||
|             <extensions>true</extensions> | ||||
|             <configuration> | ||||
|               <serverId>ossrh</serverId> | ||||
|               <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> | ||||
|               <autoReleaseAfterClose>true</autoReleaseAfterClose> | ||||
|             </configuration> | ||||
|           </plugin> | ||||
|  | ||||
|     <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>org.projectlombok</groupId> | ||||
|             <artifactId>lombok</artifactId> | ||||
|             <version>${lombok.version}</version> | ||||
|             <scope>provided</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>com.fasterxml.jackson.core</groupId> | ||||
|             <artifactId>jackson-databind</artifactId> | ||||
|             <version>2.15.3</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>ch.qos.logback</groupId> | ||||
|             <artifactId>logback-classic</artifactId> | ||||
|             <version>1.3.11</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>slf4j-api</artifactId> | ||||
|             <version>2.0.9</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.junit.jupiter</groupId> | ||||
|             <artifactId>junit-jupiter-api</artifactId> | ||||
|             <version>5.10.0</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.mockito</groupId> | ||||
|             <artifactId>mockito-core</artifactId> | ||||
|             <version>4.1.0</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|     </dependencies> | ||||
|  | ||||
|     <distributionManagement> | ||||
|         <snapshotRepository> | ||||
|             <id>ossrh</id> | ||||
|             <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> | ||||
|         </snapshotRepository> | ||||
|         <repository> | ||||
|             <id>ossrh</id> | ||||
|             <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2</url> | ||||
|         </repository> | ||||
|     </distributionManagement> | ||||
|  | ||||
|     <profiles> | ||||
|         <profile> | ||||
|             <id>unit-tests</id> | ||||
|             <properties> | ||||
|                 <test.env>unit</test.env> | ||||
|                 <skipUnitTests>false</skipUnitTests> | ||||
|                 <skipIntegrationTests>true</skipIntegrationTests> | ||||
|             </properties> | ||||
|             <activation> | ||||
|                 <activeByDefault>true</activeByDefault> | ||||
|             </activation> | ||||
|         </profile> | ||||
|         <profile> | ||||
|             <id>integration-tests</id> | ||||
|             <properties> | ||||
|                 <test.env>integration</test.env> | ||||
|                 <skipUnitTests>true</skipUnitTests> | ||||
|                 <skipIntegrationTests>false</skipIntegrationTests> | ||||
|             </properties> | ||||
|         </profile> | ||||
|         <profile> | ||||
|             <id>ci-cd</id> | ||||
|             <properties> | ||||
|                 <test.env>unit</test.env> | ||||
|                 <skipUnitTests>true</skipUnitTests> | ||||
|                 <skipIntegrationTests>true</skipIntegrationTests> | ||||
|             </properties> | ||||
|             <build> | ||||
|                 <plugins> | ||||
|                     <plugin> | ||||
|                         <groupId>org.apache.maven.plugins</groupId> | ||||
|                         <artifactId>maven-gpg-plugin</artifactId> | ||||
|                         <version>3.1.0</version> | ||||
|                         <executions> | ||||
|                             <execution> | ||||
|                                 <id>sign-artifacts</id> | ||||
|                                 <phase>verify</phase> | ||||
|                                 <goals> | ||||
|                                     <goal>sign</goal> | ||||
|                                 </goals> | ||||
|                                 <configuration> | ||||
|                                     <!-- Prevent gpg from using pinentry programs. Fixes: | ||||
|                                          gpg: signing failed: Inappropriate ioctl for device --> | ||||
|                                     <gpgArguments> | ||||
|                                         <arg>--pinentry-mode</arg> | ||||
|                                         <arg>loopback</arg> | ||||
|                                     </gpgArguments> | ||||
|                                 </configuration> | ||||
|                             </execution> | ||||
|                         </executions> | ||||
|                     </plugin> | ||||
|                     <plugin> | ||||
|                         <groupId>org.sonatype.plugins</groupId> | ||||
|                         <artifactId>nexus-staging-maven-plugin</artifactId> | ||||
|                         <version>1.6.13</version> | ||||
|                         <extensions>true</extensions> | ||||
|                         <configuration> | ||||
|                             <serverId>ossrh</serverId> | ||||
|                             <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> | ||||
|                             <autoReleaseAfterClose>true</autoReleaseAfterClose> | ||||
|                         </configuration> | ||||
|                     </plugin> | ||||
|                 </plugins> | ||||
|             </build> | ||||
|         </profile> | ||||
|     </profiles> | ||||
|           <plugin> | ||||
|             <groupId>org.jacoco</groupId> | ||||
|             <artifactId>jacoco-maven-plugin</artifactId> | ||||
|             <version>0.8.7</version> | ||||
|             <executions> | ||||
|               <execution> | ||||
|                 <goals> | ||||
|                   <goal>prepare-agent</goal> | ||||
|                 </goals> | ||||
|               </execution> | ||||
|               <execution> | ||||
|                 <id>report</id> | ||||
|                 <phase>test</phase> | ||||
|                 <goals> | ||||
|                   <goal>report</goal> | ||||
|                 </goals> | ||||
|               </execution> | ||||
|             </executions> | ||||
|           </plugin> | ||||
|         </plugins> | ||||
|       </build> | ||||
|     </profile> | ||||
|   </profiles> | ||||
|  | ||||
| </project> | ||||
| @@ -331,12 +331,12 @@ public class OllamaAPI { | ||||
|    * Ask a question to a model running on Ollama server. This is a sync/blocking call. | ||||
|    * | ||||
|    * @param model the ollama model to ask the question to | ||||
|    * @param promptText the prompt/question text | ||||
|    * @param prompt the prompt/question text | ||||
|    * @return OllamaResult that includes response text and time taken for response | ||||
|    */ | ||||
|   public OllamaResult ask(String model, String promptText) | ||||
|   public OllamaResult ask(String model, String prompt) | ||||
|       throws OllamaBaseException, IOException, InterruptedException { | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText); | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt); | ||||
|     return askSync(ollamaRequestModel); | ||||
|   } | ||||
|  | ||||
| @@ -346,11 +346,11 @@ public class OllamaAPI { | ||||
|    * async/non-blocking call. | ||||
|    * | ||||
|    * @param model the ollama model to ask the question to | ||||
|    * @param promptText the prompt/question text | ||||
|    * @param prompt the prompt/question text | ||||
|    * @return the ollama async result callback handle | ||||
|    */ | ||||
|   public OllamaAsyncResultCallback askAsync(String model, String promptText) { | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText); | ||||
|   public OllamaAsyncResultCallback askAsync(String model, String prompt) { | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt); | ||||
|  | ||||
|     URI uri = URI.create(this.host + "/api/generate"); | ||||
|     OllamaAsyncResultCallback ollamaAsyncResultCallback = | ||||
| @@ -365,17 +365,17 @@ public class OllamaAPI { | ||||
|    * sync/blocking call. | ||||
|    * | ||||
|    * @param model the ollama model to ask the question to | ||||
|    * @param promptText the prompt/question text | ||||
|    * @param prompt the prompt/question text | ||||
|    * @param imageFiles the list of image files to use for the question | ||||
|    * @return OllamaResult that includes response text and time taken for response | ||||
|    */ | ||||
|   public OllamaResult askWithImageFiles(String model, String promptText, List<File> imageFiles) | ||||
|   public OllamaResult askWithImageFiles(String model, String prompt, List<File> imageFiles) | ||||
|       throws OllamaBaseException, IOException, InterruptedException { | ||||
|     List<String> images = new ArrayList<>(); | ||||
|     for (File imageFile : imageFiles) { | ||||
|       images.add(encodeFileToBase64(imageFile)); | ||||
|     } | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText, images); | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt, images); | ||||
|     return askSync(ollamaRequestModel); | ||||
|   } | ||||
|  | ||||
| @@ -384,17 +384,17 @@ public class OllamaAPI { | ||||
|    * sync/blocking call. | ||||
|    * | ||||
|    * @param model the ollama model to ask the question to | ||||
|    * @param promptText the prompt/question text | ||||
|    * @param prompt the prompt/question text | ||||
|    * @param imageURLs the list of image URLs to use for the question | ||||
|    * @return OllamaResult that includes response text and time taken for response | ||||
|    */ | ||||
|   public OllamaResult askWithImageURLs(String model, String promptText, List<String> imageURLs) | ||||
|   public OllamaResult askWithImageURLs(String model, String prompt, List<String> imageURLs) | ||||
|       throws OllamaBaseException, IOException, InterruptedException, URISyntaxException { | ||||
|     List<String> images = new ArrayList<>(); | ||||
|     for (String imageURL : imageURLs) { | ||||
|       images.add(encodeByteArrayToBase64(loadImageBytesFromUrl(imageURL))); | ||||
|     } | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, promptText, images); | ||||
|     OllamaRequestModel ollamaRequestModel = new OllamaRequestModel(model, prompt, images); | ||||
|     return askSync(ollamaRequestModel); | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user