Acceder a la API de OpenAI con node
https://www.sitepoint.com/ai-javascript-research-assistant/
const { OpenAI } = require("openai"); const openai = new OpenAI({ apiKey: "YOUR_OPENAI_API_KEY", dangerouslyAllowBrowser: true, }); async function queryAIModel(question) { try { const completion = await openai.chat.completions.create({ model: "gpt-4", messages: [ { role: "system", content: "You are a helpful research assistant." }, { role: "user", content: question } ], }); return completion.choices[0].message.content.trim(); } catch (error) { console.error("An error occurred while querying GPT-4:", error); return "Sorry, an error occurred. Please try again."; } } async function queryResearchAssistant() { const query = "What is the role of JavaScript in building AI Applications?"; const answer = await queryAIModel(query); console.log(`Question: ${query}\nAnswer: ${answer}`); } queryResearchAssistant();
13 trucos de excel
13 cursos de react
¿Qué hay que poner en un powerpoint?
– Nombre del proyecto y del autor/a
(Tornillería Martínez, por Ana Martínez)
-Breve descripción del proyecto
(En este proyecto vamos a crear un backend para controlar el inventario de tornillos de la tienda, bla, bla, bla, así estará todo informatizado y muy bonito)
– Tecnología utilizada
( Usaremos mysql para base de datos, java como lenguaje de programación, Spring boot como framework, postman, API REST, Swagger…)
– Descripción del modelo de datos
(Hemos creado estas tablas, que tienen esta relación y esta cardinalidad, explicado y el por qué)
– ‘Foto’ del modelo de datos
– Descripción de la API
(Tenemos una API que hace CRUD de las siguientes tablas, además tenemos búsqueda por tal y cual campo, tenemos esto para las relaciones, tralará…)
– ‘Foto’ de la API (con swagger o las urls)
– Descripción del código
(Lo más complicado ha sido hacer esto y aquello para lo que hemos utilizado el siguiente recurso)
– ‘Foto’ de parte del código
– Que hemos aprendido
(He conseguido hacer un MVC desde cero y crear BD y muchas cosas)
– Que se podría mejorar o ampliaciones al proyecto
– Saludos
API REST final comentada
Último proyecto REST API con todo
Pasos para crear Hibernate
Crear un proyecto Maven
Escogemos maven-archetype-quickstart
En principio el de org.apache
Añadimos las dependencias de ‘Hibernate’ y ‘Mysql’. Os las pongo aquí.
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.32</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.6.15.Final</version> </dependency> </dependencies>
Después dentro de src/main creamos la carpeta ‘resources’: New folder
Dentro de resources creamos el archivo hibernate.cfg.xml, y dentro colocamos lo siguiente:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "https://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost/sakila</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <property name="hibernate.show_sql">true</property> <mapping class="com.trifulcas.models.Actor" /> </session-factory> </hibernate-configuration>
Creamos un paquete com.trifulcas.models y dentro metemos nuestro POJO:
package com.trifulcas.models; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name= "actor") public class Actor { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int actor_id; private String first_name; private String last_name; public Actor() { } /** * @return the actor_id */ public int getActor_id() { return actor_id; } /** * @param actor_id the actor_id to set */ public void setActor_id(int actor_id) { this.actor_id = actor_id; } /** * @return the first_name */ public String getFirst_name() { return first_name; } /** * @param first_name the first_name to set */ public void setFirst_name(String first_name) { this.first_name = first_name; } /** * @return the last_name */ public String getLast_name() { return last_name; } /** * @param last_name the last_name to set */ public void setLast_name(String last_name) { this.last_name = last_name; } @Override public String toString() { return "Actor id=" + actor_id + ",nombre=" + first_name+" "+last_name + "]"; } }
Y por último probaríamos que todo va bien, este código debería funcionar:
StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build(); SessionFactory factory = meta.getSessionFactoryBuilder().build(); Session session = factory.openSession(); try { Actor penelope = session.get(Actor.class, 1); System.out.println(penelope.getFirst_name() + " " + penelope.getLast_name()); List<Actor> lista = session.createQuery("from Actor a where a.first_name like '%ar%' ").getResultList(); for (Actor a : lista) { System.out.println(a); } } catch (Exception ex) { System.out.println(ex); } factory.close(); session.close();
DAO comienzo
public class ActorDAO { private Connection con; public ActorDAO() { try { // Registrar el driver mysql Class.forName("com.mysql.cj.jdbc.Driver"); // Conectarme a la base de datos con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila", "root", "root"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public ArrayList<Actor> getActorAll() { try { String sql="select * from actor"; PreparedStatement psmt=con.prepareStatement(sql); ResultSet res=psmt.executeQuery(); ArrayList<Actor> actores= new ArrayList<Actor>(); while (res.next()) { actores.add( new Actor(res.getInt("actor_id"), res.getString("first_name"), res.getString("last_name"))); } return actores; }catch(Exception ex) { ex.printStackTrace(); return null; } } public Actor getActor(int id) { try { String sql="select * from actor where actor_id=?"; PreparedStatement psmt=con.prepareStatement(sql); psmt.setInt(1, id); ResultSet res=psmt.executeQuery(); if (res.next()) { return new Actor(res.getInt("actor_id"), res.getString("first_name"), res.getString("last_name")); } else { return null; } }catch(Exception ex) { ex.printStackTrace(); return null; } } public boolean addActor(String first_name, String last_name) { try { String sql="insert into actor (first_name,last_name) values (?,?)"; PreparedStatement psmt=con.prepareStatement(sql); psmt.setString(1, first_name); psmt.setString(2, last_name); int res=psmt.executeUpdate(); return res==1; }catch(Exception ex) { ex.printStackTrace(); return false; } } public boolean addActor(Actor actor) { try { String sql="insert into actor (first_name,last_name) values (?,?)"; PreparedStatement psmt=con.prepareStatement(sql); psmt.setString(1, actor.getFirst_name()); psmt.setString(2, actor.getLast_name()); int res=psmt.executeUpdate(); return res==1; }catch(Exception ex) { ex.printStackTrace(); return false; } } }
public static void main(String[] args) { try { // El objeto DAO que me permite trabajar con la BD ActorDAO dao=new ActorDAO(); // Utilizar una de las propiedades: add for(int i=0;i<10000;i++) { dao.addActor("John"+i, "Travolta"); } //dao.addActor("John", "Travolta"); Actor eva=new Actor(0,"Eva","Wuig"); // dao.addActor(eva); System.out.println(dao.getActor(1)); System.out.println(dao.getActorAll()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Ejemplos JDBC
try { // Registrar el driver mysql Class.forName("com.mysql.cj.jdbc.Driver"); // Conectarme a la base de datos Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila", "root", "root"); String nombre="Ana"; // Creo a partir de la conexión un comando Statement stmt = con.createStatement(); stmt.execute("insert into actor(first_name,last_name) values ('"+nombre+"','pi')"); // Los interrogantes son los parámetros PreparedStatement psmt=con.prepareStatement("insert into actor (first_name,last_name) values (?,?)"); psmt.setString(1, "Pep"); psmt.setString(2, "Pérez"); psmt.executeUpdate(); psmt.setString(1, "Pepa"); psmt.setString(2, "Pérez"); psmt.executeUpdate(); // Ejecuto un select y lo guardo en un resultset ResultSet rs = stmt.executeQuery("select * from actor where actor_id>20"); // Recorro el resultset y con get obtengo los valores while (rs.next()) { System.out.println(rs.getInt("actor_id") + " " + rs.getString(2) + " " + rs.getString(3)); } stmt.close(); con.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }