Jadual Kandungan
1 Pengenalan Spring AI
2 Buat projek Spring Boot dan tulis contoh pengawal OpenAI
3 Gunakan kelas Prompt untuk membina maklumat segera
4 Aplikasi Ujian
Rumah Peranti teknologi AI Paradigma pengaturcaraan baharu, apabila Spring Boot bertemu OpenAI

Paradigma pengaturcaraan baharu, apabila Spring Boot bertemu OpenAI

Feb 01, 2024 pm 09:18 PM
ai spring openai

Pada tahun 2023, teknologi AI telah menjadi topik hangat dan telah memberi impak yang besar kepada pelbagai industri, terutamanya dalam bidang pengaturcaraan. Orang ramai semakin menyedari kepentingan teknologi AI, dan komuniti Spring tidak terkecuali.

Dengan kemajuan berterusan teknologi GenAI (General Artificial Intelligence), ia menjadi penting dan mendesak untuk memudahkan penciptaan aplikasi yang didayakan AI. Dengan latar belakang ini, "Spring AI" muncul, bertujuan untuk memudahkan proses membangunkan aplikasi berfungsi AI, menjadikannya mudah dan intuitif serta mengelakkan kerumitan yang tidak perlu. Melalui "Spring AI", pembangun boleh membina aplikasi dengan lebih mudah dengan fungsi AI, menjadikannya lebih mudah untuk digunakan dan dikendalikan. Ini bukan sahaja membantu meningkatkan kecekapan pembangunan, tetapi juga mempercepatkan popularisasi dan aplikasi teknologi AI. Ringkasnya, "Spring AI" membawa kemungkinan baharu kepada pembangunan aplikasi AI, menyediakan pembangun dengan alatan dan rangka kerja yang lebih mudah dan lebih intuitif.

Artikel ini akan memperkenalkan secara ringkas rangka kerja Spring AI dan beberapa petua kejuruteraan untuk menggunakan rangka kerja tersebut. Pembangun boleh menggunakan petua ini untuk menyusun maklumat segera dengan lebih baik dan menggunakan sepenuhnya keupayaan Spring AI.

1 Pengenalan Spring AI

编程新范式,当Spring Boot遇上OpenAISpring AI dicipta dan ditulis oleh M K Pavan Kumar

Spring AI ialah projek yang direka untuk memudahkan pembangunan aplikasi AI, diilhamkan oleh projek Python LangChain dan LlamaIndex. Walau bagaimanapun, Spring AI bukanlah salinan mudah. Idea terasnya ialah membuka aplikasi AI generatif kepada pengguna pelbagai bahasa pengaturcaraan, bukan hanya peminat bahasa Python. Ini bermakna pembangun boleh membina aplikasi AI menggunakan bahasa yang mereka kenali tanpa perlu mempelajari bahasa Python. Dengan Spring AI, pembangun boleh menggunakan kuasa AI dengan lebih mudah untuk menyelesaikan pelbagai masalah, tanpa mengira bahasa pengaturcaraan yang mereka gunakan. Ini akan memudahkan pembangunan aplikasi AI yang lebih luas dan menyediakan pembangun dengan lebih fleksibiliti dan pilihan.

Matlamat teras Spring AI adalah untuk menyediakan blok binaan asas untuk membina aplikasi dipacu AI. Blok binaan ini sangat fleksibel dan komponen boleh ditukar dengan mudah tanpa sebarang pengubahsuaian pada kod. Satu contoh ialah Spring AI memperkenalkan komponen yang dipanggil antara muka ChatClient, yang serasi dengan teknologi OpenAI dan Azure OpenAI. Ini membolehkan pembangun bertukar antara penyedia perkhidmatan AI yang berbeza tanpa mengubah kod, menjadikan pembangunan dan penyepaduan lebih mudah.

Pada terasnya, Spring AI menyediakan blok binaan yang boleh dipercayai untuk membangunkan aplikasi berasaskan kecerdasan buatan. Keanjalan modul ini membolehkan pertukaran komponen yang lancar tanpa memerlukan pengubahsuaian yang meluas pada pengekodan. Satu contoh ialah pengenalan Spring AI bagi antara muka ChatClient, yang serasi dengan OpenAI dan Azure OpenAI, membolehkan pembangun bercakap dengan mudah dengan kedua-dua platform. Keserasian ini membolehkan pembangun memilih platform yang sesuai berdasarkan keperluan sebenar tanpa perlu menulis semula kod. Dengan Spring AI, pembangun boleh membina aplikasi dipacu AI dengan lebih cekap.

Spring AI melangkaui blok binaan asas dan menumpukan pada penyediaan penyelesaian yang lebih maju. Contohnya, ia boleh menyokong senario biasa seperti "soal jawab tentang dokumen sendiri" atau "sembang interaktif menggunakan dokumen". Apabila keperluan aplikasi berkembang, Spring AI merancang untuk bekerjasama rapat dengan komponen lain ekosistem Spring seperti Spring Integration, Spring Batch dan Spring Data untuk memenuhi keperluan perniagaan yang lebih kompleks.

2 Buat projek Spring Boot dan tulis contoh pengawal OpenAI

Mula-mula jana projek Spring Boot dalam IDE dan simpan kandungan berikut dalam fail application.properties:

spring.ai.openai.api-key=<YOUR\_OPENAI\_API\_KEY>
Salin selepas log masuk

Tulis pengawal bernama OpenAIController.java di bawah:

package com.vas.springai.controller;import org.springframework.ai.client.AiClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api/v1")public class OpenAIController {private final AiClient aiClient;public OpenAIController(AiClient aiClient) {this.aiClient = aiClient;}}
Salin selepas log masuk

3 Gunakan kelas Prompt untuk membina maklumat segera

Kelas gesaan ialah pemegang berstruktur bagi jujukan objek mesej, dan setiap mesej mewakili sebahagian daripada gesaan. Mesej ini mempunyai peranan dan tujuan yang berbeza dalam gesaan, dan kandungannya berbeza-beza. Termasuk soalan pengguna, respons yang dijana AI, butiran kontekstual yang berkaitan dan banyak lagi. Persediaan ini memudahkan interaksi manusia-komputer yang kompleks dan canggih kerana gesaan terdiri daripada berbilang mesej dengan fungsi tertentu.

@GetMapping("/completion")public String completion(@RequestParam(value = "message") String message){return this.aiClient.generate(message);}
Salin selepas log masuk

Walau bagaimanapun, kaedah jana aiClient bukan sahaja menerima teks biasa sebagai parameter, ia juga boleh menerima objek kelas Prompt sebagai parameter, seperti yang ditunjukkan di bawah. Sekarang, kaedah ini mengembalikan contoh jenis AiResponse, bukan teks mudah.

@GetMapping("/completion")public AiResponse completion(@RequestParam(value = "message") String message){ PromptTemplate promptTemplate = new PromptTemplate("translate the given english sentence sentence into french {query}"); Prompt prompt = promptTemplate.create(Map.of("query", message)); return this.aiClient.generate(prompt);}
Salin selepas log masuk

Selain itu, kelas Prompt juga menyediakan pembina terlampau beban yang boleh menerima jujukan tika jenis Mesej dengan peranan dan niat yang berbeza sebagai parameter. Ini boleh mengatur dan mengurus maklumat segera dengan lebih baik dan memudahkan pemprosesan dan penggunaan seterusnya. Di bawah ialah contoh kod yang menunjukkan cara menggunakan pembina yang terlebih beban ini untuk menggabungkan segala-galanya.

package com.vas.springai.controller;import org.springframework.ai.client.AiClient;import org.springframework.ai.client.Generation;import org.springframework.ai.prompt.Prompt;import org.springframework.ai.prompt.PromptTemplate;import org.springframework.ai.prompt.SystemPromptTemplate;import org.springframework.ai.prompt.messages.Message;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;import java.util.Map;@RestController@RequestMapping("/api/v1")public class OpenAIController {private final AiClient aiClient;public OpenAIController(AiClient aiClient) {this.aiClient = aiClient;}@GetMapping("/completion")public List<Generation> completion(@RequestParam(value = "message") String message) {String systemPrompt = """You are a helpful AI assistant that helps people translate given text from english to french.Your name is TranslateProYou should reply to the user's request with your name and also in the style of a professional.""";SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);Message systemMessage = systemPromptTemplate.createMessage();PromptTemplate promptTemplate = new PromptTemplate("translate the given english sentence sentence into french {query}");Message userMessage = promptTemplate.createMessage(Map.of("query", message));Prompt prompt = new Prompt(List.of(systemMessage, userMessage));return this.aiClient.generate(prompt).getGenerations();}}
Salin selepas log masuk

4 Aplikasi Ujian

Aplikasi boleh diuji menggunakan mana-mana alat terbuka yang terdapat di pasaran, seperti posmen, insomnia, Httpie dan banyak lagi.

编程新范式,当Spring Boot遇上OpenAI Gambar

Atas ialah kandungan terperinci Paradigma pengaturcaraan baharu, apabila Spring Boot bertemu OpenAI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Mengkonfigurasi Format Log Debian Apache Cara Mengkonfigurasi Format Log Debian Apache Apr 12, 2025 pm 11:30 PM

Artikel ini menerangkan cara menyesuaikan format log Apache pada sistem Debian. Langkah -langkah berikut akan membimbing anda melalui proses konfigurasi: Langkah 1: Akses fail konfigurasi Apache Fail konfigurasi Apache utama sistem Debian biasanya terletak di /etc/apache2/apache2.conf atau /etc/apache2/httpd.conf. Buka fail konfigurasi dengan kebenaran root menggunakan arahan berikut: Sudonano/etc/Apache2/Apache2.conf atau Sudonano/etc/Apache2/httpd.conf Langkah 2: Tentukan format log tersuai untuk mencari atau

Bagaimana log tomcat membantu menyelesaikan masalah kebocoran memori Bagaimana log tomcat membantu menyelesaikan masalah kebocoran memori Apr 12, 2025 pm 11:42 PM

Log Tomcat adalah kunci untuk mendiagnosis masalah kebocoran memori. Dengan menganalisis log tomcat, anda boleh mendapatkan wawasan mengenai kelakuan memori dan pengumpulan sampah (GC), dengan berkesan mencari dan menyelesaikan kebocoran memori. Berikut adalah cara menyelesaikan masalah kebocoran memori menggunakan log Tomcat: 1. GC Log Analysis terlebih dahulu, membolehkan pembalakan GC terperinci. Tambah pilihan JVM berikut kepada parameter permulaan TOMCAT: -XX: PrintGCDetails-XX: PrintGCDATestamps-XLogGC: GC.LOG Parameter ini akan menghasilkan log GC terperinci (GC.LOG), termasuk maklumat seperti jenis GC, saiz dan masa yang dikitar semula. Analisis GC.Log

Cara Melaksanakan Penyortiran Fail oleh Debian Readdir Cara Melaksanakan Penyortiran Fail oleh Debian Readdir Apr 13, 2025 am 09:06 AM

Dalam sistem Debian, fungsi Readdir digunakan untuk membaca kandungan direktori, tetapi urutan yang dikembalikannya tidak ditentukan sebelumnya. Untuk menyusun fail dalam direktori, anda perlu membaca semua fail terlebih dahulu, dan kemudian menyusunnya menggunakan fungsi QSORT. Kod berikut menunjukkan cara menyusun fail direktori menggunakan ReadDir dan QSORT dalam sistem Debian:#termasuk#termasuk#termasuk#termasuk // fungsi perbandingan adat, yang digunakan untuk qSortintCompare (Constvoid*A, Constvoid*b) {Returnstrcmp (*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(

Cara Mengoptimumkan Prestasi Debian Readdir Cara Mengoptimumkan Prestasi Debian Readdir Apr 13, 2025 am 08:48 AM

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori

Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Apr 13, 2025 am 09:42 AM

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Cara Mengkonfigurasi Peraturan Firewall Untuk Debian Syslog Cara Mengkonfigurasi Peraturan Firewall Untuk Debian Syslog Apr 13, 2025 am 06:51 AM

Artikel ini menerangkan cara mengkonfigurasi peraturan firewall menggunakan iptables atau UFW dalam sistem debian dan menggunakan syslog untuk merakam aktiviti firewall. Kaedah 1: Gunakan IPTableSiptable adalah alat firewall baris perintah yang kuat dalam sistem Debian. Lihat peraturan yang ada: Gunakan arahan berikut untuk melihat peraturan iptables semasa: sudoiptables-l-n-v membolehkan akses IP tertentu: sebagai contoh, membenarkan alamat IP 192.168.1.100 untuk mengakses port 80: sudoiptables-ainput-pTCP-Dport80-S192.16

Cara Belajar Debian Syslog Cara Belajar Debian Syslog Apr 13, 2025 am 11:51 AM

Panduan ini akan membimbing anda untuk belajar cara menggunakan syslog dalam sistem Debian. SYSLOG adalah perkhidmatan utama dalam sistem Linux untuk sistem pembalakan dan mesej log aplikasi. Ia membantu pentadbir memantau dan menganalisis aktiviti sistem untuk mengenal pasti dan menyelesaikan masalah dengan cepat. 1. Pengetahuan asas syslog Fungsi teras syslog termasuk: mengumpul dan menguruskan mesej log secara terpusat; menyokong pelbagai format output log dan lokasi sasaran (seperti fail atau rangkaian); Menyediakan fungsi tontonan log dan penapisan masa nyata. 2. Pasang dan konfigurasikan syslog (menggunakan rsyslog) Sistem Debian menggunakan rsyslog secara lalai. Anda boleh memasangnya dengan arahan berikut: sudoaptupdatesud

Di mana laluan log nginx debian Di mana laluan log nginx debian Apr 12, 2025 pm 11:33 PM

Dalam sistem Debian, lokasi penyimpanan lalai log akses dan log ralat Nginx adalah seperti berikut: Log Akses (AccessLog):/var/log/nginx/akses.log log ralat (errorLog):/var/log/nginx/error.log Jalan di atas adalah konfigurasi lalai pemasangan debiannginx standard. Jika anda telah mengubahsuai lokasi storan fail log semasa proses pemasangan, sila periksa fail konfigurasi Nginx anda (biasanya terletak di /etc/nginx/nginx.conf atau/etc/nginx/sites-available/direktori). Dalam fail konfigurasi

See all articles