2023年、AI技術が話題となり、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。
GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが極めて重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直感的にし、不必要な複雑さを回避することを目的とした「Spring AI」が登場しました。 「Spring AI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。これにより、開発効率が向上するだけでなく、AI技術の普及と応用が加速します。つまり、「Spring AI」は AI アプリケーションの開発に新たな可能性をもたらし、よりシンプルで直感的なツールとフレームワークを開発者に提供します。
この記事では、Spring AI フレームワークと、このフレームワークを使用するためのエンジニアリングのヒントを簡単に紹介します。開発者はこれらのヒントを使用して、プロンプト情報をより適切に構造化し、Spring AI の機能を最大限に活用できます。
1 Spring AI の概要
Spring AI は M K Pavan Kumar によって作成および記述されています
Spring AI は、次の作業を簡素化するために設計されたツールです。 AI アプリケーション Python プロジェクト LangChain と LlamaIndex に触発されて開発されたプロジェクト。ただし、Spring AI は単純なコピーではありません。その中心的なアイデアは、Python 言語の愛好家だけでなく、さまざまなプログラミング言語のユーザーに生成 AI アプリケーションを公開することです。これは、開発者が Python 言語を学習しなくても、使い慣れた言語を使用して AI アプリケーションを構築できることを意味します。 Spring AI を使用すると、開発者は、使用するプログラミング言語に関係なく、AI の力をより簡単に利用してさまざまな問題を解決できます。これにより、より広範な AI アプリケーション開発が促進され、開発者により多くの柔軟性と選択肢が提供されます。
Spring AI の中心的な目標は、AI 駆動型アプリケーションを構築するための基本的な構成要素を提供することです。これらのビルディング ブロックは柔軟性が高く、コードを実質的に変更することなくコンポーネントを簡単に交換できます。一例として、Spring AI は、OpenAI および Azure OpenAI テクノロジと互換性のある ChatClient インターフェイスと呼ばれるコンポーネントを導入しています。これにより、開発者はコードを変更せずに異なる AI サービス プロバイダーを切り替えることができるため、開発と統合がより便利になります。
Spring AI は、その中核として、人工知能ベースのアプリケーションを開発するための信頼できるビルディング ブロックを提供します。これらのモジュールの弾力性により、コーディングに大規模な変更を加えることなく、コンポーネントをスムーズに交換できます。一例として、Spring AI による ChatClient インターフェイスの導入が挙げられます。これは OpenAI および Azure OpenAI と互換性があり、開発者が両方のプラットフォームと簡単に対話できるようになります。この互換性により、開発者はコードを書き直すことなく、実際のニーズに基づいて適切なプラットフォームを選択できます。 Spring AI を使用すると、開発者は AI 駆動のアプリケーションをより効率的に構築できます。
Spring AI は、基本的な構成要素を超えて、より高度なソリューションを提供することに重点を置いています。例えば、「自分のドキュメントについての質疑応答」や「ドキュメントを使った対話型チャット」などの典型的なシナリオをサポートできます。アプリケーションのニーズが増大するにつれて、Spring AI は Spring Integration、Spring Batch、Spring Data などの Spring エコシステムの他のコンポーネントと緊密に連携して、より複雑なビジネス ニーズに対応する予定です。
2 Spring Boot プロジェクトを作成し、OpenAI コントローラーの例を作成します
まず、IDE で Spring Boot プロジェクトを生成し、次の内容を application.properties ファイルに保持します:
spring.ai.openai.api-key=<your></your>
以下 OpenAIController.java という名前のコントローラーを作成します:
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;}}
3 Prompt クラスを使用してプロンプト情報を構築します
プロンプト クラスは、一連のメッセージ オブジェクトの構造化されたホルダーであり、各メッセージはプロンプトの一部。これらのメッセージはプロンプト内で異なる役割と目的を持ち、その内容も異なります。ユーザーの質問、AI が生成した応答、関連するコンテキストの詳細などが含まれます。この設定では、プロンプトが特定の機能を備えた複数のメッセージで構成されているため、人間とコンピューターの複雑で高度な対話が容易になります。
@GetMapping("/completion")public String completion(@RequestParam(value = "message") String message){return this.aiClient.generate(message);}
ただし、aiClient の生成メソッドは、プレーン テキストをパラメータとして受け入れるだけでなく、以下に示すように、Prompt クラスのオブジェクトもパラメータとして受け入れることができます。現在、このメソッドは単純なテキストではなく、AiResponse タイプのインスタンスを返します。
@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);}
さらに、Prompt クラスは、さまざまな役割と意図を持つ一連の Message タイプのインスタンスをパラメーターとして受け入れることができるオーバーロードされたコンストラクターも提供します。これにより、プロンプト情報がより適切に整理および管理され、その後の処理と使用が容易になります。以下は、このオーバーロードされたコンストラクターを使用してすべてをマージする方法を示すサンプル コードです。
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();}}</generation>
4 アプリケーションのテスト
市場で入手可能な任意のオープン ツールを使用して、postman、insomnia、Httpie などのアプリケーションをテストできます。
############################## ###写真### #############以上がSpring Boot と OpenAI の出会いによる新しいプログラミング パラダイムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

食品の準備を強化するAI まだ初期の使用中ですが、AIシステムは食品の準備にますます使用されています。 AI駆動型のロボットは、ハンバーガーの製造、SAの組み立てなど、食品の準備タスクを自動化するためにキッチンで使用されています

導入 Python関数における変数の名前空間、スコープ、および動作を理解することは、効率的に記述し、ランタイムエラーや例外を回避するために重要です。この記事では、さまざまなASPを掘り下げます

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

製品のケイデンスを継続して、今月MediaTekは、新しいKompanio UltraやDimenity 9400を含む一連の発表を行いました。これらの製品は、スマートフォン用のチップを含むMediaTekのビジネスのより伝統的な部分を埋めます

#1 GoogleはAgent2Agentを起動しました 物語:月曜日の朝です。 AI駆動のリクルーターとして、あなたはより賢く、難しくありません。携帯電話の会社のダッシュボードにログインします。それはあなたに3つの重要な役割が調達され、吟味され、予定されていることを伝えます

私はあなたがそうであるに違いないと思います。 私たちは皆、精神障害がさまざまな心理学の用語を混ぜ合わせ、しばしば理解できないか完全に無意味であることが多い、さまざまなおしゃべりで構成されていることを知っているようです。 FOを吐き出すために必要なことはすべてです

今週公開された新しい研究によると、2022年に製造されたプラスチックの9.5%のみがリサイクル材料から作られていました。一方、プラスチックは埋め立て地や生態系に積み上げられ続けています。 しかし、助けが近づいています。エンジンのチーム

主要なエンタープライズ分析プラットフォームAlteryxのCEOであるAndy Macmillanとの私の最近の会話は、AI革命におけるこの重要でありながら過小評価されている役割を強調しました。 MacMillanが説明するように、生のビジネスデータとAI-Ready情報のギャップ


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター
