<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         
  <modelVersion>4.0.0</modelVersion>
  
  <parent>
       <groupId>solutions.own.instructor4j</groupId>
       <artifactId>instructor4j-aggregator</artifactId>
       <version>0.1.0</version>
       <relativePath>../pom.xml</relativePath>
  </parent>
        
  <artifactId>instructor4j-openai</artifactId>
  <name>Instructor4j :: OpenAI</name>

  <description>
    OpenAI Instructor4j library for working with structured outputs from large language models (LLMs). It is a Java port of the Instructor Python library, adapting its core functionality and features for use in Java environments.
  </description>
  
  <dependencies>
    <!-- OpenAI SDK -->
      <dependency>
          <groupId>com.theokanning.openai-gpt3-java</groupId>
          <artifactId>client</artifactId>
          <version>0.18.2</version>
      </dependency>
      <dependency>
          <groupId>com.theokanning.openai-gpt3-java</groupId>
          <artifactId>service</artifactId>
          <version>0.18.2</version>
      </dependency>

    <!-- Jackson for JSON Parsing -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.5</version>
    </dependency>

    <!-- For Java Annotations (optional, for field descriptions) -->
      <dependency>
          <groupId>jakarta.annotation</groupId>
          <artifactId>jakarta.annotation-api</artifactId>
          <version>3.0.0</version>
      </dependency>

    <!-- JUnit 5 -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.8.1</version>
        <scope>test</scope>
    </dependency>

    <!-- Mockito for Mocking -->
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>4.0.0</version>
        <scope>test</scope>
    </dependency>
  </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>5.1.9</version> <!-- You can use the latest version -->
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <basedir/>
                    <buildDirectory/>
                    <outputDirectory/>
                    <projectArtifact/>
                    <source>9</source>
                    <target>9</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>  

