2
respuestas

Error y duda sobre API

Hola, quisiera expresar una duda que me ha surgido sobre el uso de las API's que he visto en varios videos tutoriales. Es común que los profesores pongan sus API keys sombreadas y me pregunto, lejos del riesgo del consumo de recursos con una sola clave, ¿existe algún otro motivo por el cual no se pongan visibles estos códigos?

En cuanto al error que me sale es el siguiente:

Caused by: java.lang.NoSuchMethodError: 'void com.fasterxml.jackson.core.util.BufferRecycler.releaseToPool()'

He visto que hay que verificar la compatibilidad de las dependencias, o algo así, pero francamente no sé qué versión de qué sea compatible con tal versión de cuál.

Espero me puedan ayudar. Saludos.

2 respuestas

¡Hola, Gustavo!

Respecto a tu primera pregunta sobre el uso de API keys sombreadas, el motivo principal de ocultar estas claves es la seguridad. Si las claves de API se hacen visibles, cualquiera podría hacer uso de ellas y consumir tus recursos, lo que podría generar costos inesperados o incluso dañar tu sistema. Por eso, es importante mantener estas claves protegidas y seguras.

En cuanto al error que estás experimentando con la librería Jackson, el error "java.lang.NoSuchMethodError" suele estar relacionado con problemas de compatibilidad entre versiones de las dependencias. Es importante verificar que todas las dependencias utilizadas en tu proyecto, incluyendo Jackson, estén en versiones compatibles entre sí. Por ejemplo, si estás utilizando Spring Boot, puedes revisar la compatibilidad de las versiones de Spring Boot y Jackson en la documentación oficial de Spring.

Si necesitas más ayuda con la resolución de este error, no dudes en compartir más detalles sobre las dependencias que estás utilizando y con gusto te ayudaré a encontrar una solución.

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Yo estaba teniendo el mismo error. Y justo como menciona Luis, esto es debido a problemas de compatibilidad entre versiones. Parece ser que la siguiente dependencia:

<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.18.2</version>
</dependency>

También hace uso de jackson-databind. Por lo que si tienes una versión distinta en tu proyecto, existirá este problema de compatibilidad.

Lo que a mí me funcionó fue hacer lo siguiente:

En tu archivo pom.xml agrega lo siguiente antes de <dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson</groupId>
            <artifactId>jackson-bom</artifactId>
            <version>2.17.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Luego agrega lo siguiente a dependencies.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.17.1</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.17.1</version>
</dependency>

Y listo, si ya tienes jackson-databind lo puedes sustituir o bien hacer los cambios de acuerdo a la version que estés utilizando.

Si bien esto solucionó mi problema con la clase de Chat GPT, me enconté después con el error de que ya he exedido la cuota permitida, por lo que tendré que buscar una alternativa para poder traducir mis textos.