Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
-Solución de error al ejecutar con maven por consola
-Control de excepciones desde App
-Creación de Readme
  • Loading branch information
Marc0Franc0 committed Mar 27, 2024
1 parent a6f9b6c commit 4829370
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.marco.exception;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class GlobalControllerAdvice {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity captureUnknownContentTypeException
(RuntimeException e){
return ResponseEntity
.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(e.getMessage());
}
}
4 changes: 2 additions & 2 deletions App/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ springDoc:
spring:
application:
name: OpenAIAssistantAPI
description: Api que implementa el uso de la api de Open Ai
description: API REST diseñada para implementar y facilitar el uso de la API de OpenAI en un sistema de chat basado en texto. Permite interactuar con el sistema de chat mediante dos endpoints principales.
version: 1.0.0
#Open ai config
ai:
openai:
apiKey: ${SPRING_AI_OPENAI_APIKEY}
apiKey: ${SPRING_AI_OPENAI_APIKEY} #Tu clave API de Open Ai
chat:
options:
model: gpt-3.5-turbo
Expand Down
73 changes: 73 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# [OpenAiAssistantApi](https://github.com/Marc0Franc0/OpenAiAssistantApi#openaiassistantapi)

API REST diseñada para implementar y facilitar el uso de la API de OpenAI en un sistema de chat basado en texto.
Permite interactuar con el sistema de chat mediante dos endpoints principales.

## Características
- Consumo de API OpenAI: Integración con la API de OpenAI para procesar y
generar respuestas coherentes y contextualizadas utilizando tecnologías avanzadas
de NLP (Procesamiento del Lenguaje Natural).

## Tecnologías
- Spring Boot 3.2.4
- Spring AI 0.8.1
- Maven

## Endpoints

### GET /generateText

Este endpoint permite enviar mensajes de texto al sistema de chat para su procesamiento utilizando la API de OpenAI y obtener una respuesta coherente en formato de cadena de texto.
```shell
curl http://localhost:8080/api/v1/ai/generateText?message=Hola
```
- Response
```
{"generation":"Texto generado por api"}
```

### GET /generateTextStream

Este endpoint permite enviar mensajes de texto al sistema de chat para su procesamiento utilizando la API de OpenAI y obtener una respuesta coherente en formato de flujo de datos.
```shell
curl http://localhost:8080/api/v1/ai/generateTextStream?message=Hola
```
- Response
```
"Texto generado por api"
```
## Instalación y configuración
Sigue estos pasos para instalar y configurar la API:
1. Clonar repositorio
```shell
git clone https://github.com/Marc0Franc0/OpenAiAssistantApi
```
2. Configura la API de OpenAI:
- Regístrate en OpenAI para obtener una clave API.
- Dirigite a: OpenAIAssistantAPI/App/src/main/resources/application.yml
- Configura la clave API en el archivo de configuración:
Modifica el valor de ${SPRING_AI_OPENAI_APIKEY} con tu clave API
3. Seguir pasos para ejecución con Maven

## Ejecución con Maven

Para construir y ejecutar la aplicación necesita:

- [JDK 21+](https://www.oracle.com/java/technologies/downloads/#java21)
- [Maven 3+](https://maven.apache.org)

Ejecutar localmente
1. Instala las dependencias
```shell
cd OpenAiAssistantApi
mvn clean install
```
2. Inicia la app
```shell
cd App
mvn spring-boot:run
```

Dirigirse a:
- [Documentación en formato JSON](http://localhost:8080/api/v3/api-docs)
- [Documentación Swagger con interfaz gráfica](http://localhost:8080/doc/swagger-ui/index.html)
14 changes: 6 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,11 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.marco</groupId>
<artifactId>OpenAIAssistantAPI</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>1.0.0</version>
<name>OpenAIAssistantAPI</name>
<description>Demo project for Spring Boot</description>
<packaging>pom</packaging>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>21</java.version>
<spring-ai.version>0.8.1</spring-ai.version>
Expand All @@ -28,24 +22,27 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>3.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>3.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -78,6 +75,7 @@
<artifactId>lombok</artifactId>
</exclude>
</excludes>
<mainClass>com.marco.App</mainClass>
</configuration>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public TextResponse call(String message) {
catch(Exception e){
response = "No se obtuvo una respuesta";
log.debug("Exception:{}".concat(e.getMessage()));
throw new RuntimeException(response);
}
return TextResponse
.builder()
Expand Down

0 comments on commit 4829370

Please sign in to comment.