偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

逆天強(qiáng)大!Spring AI 身份證識別,圖片分析真牛啊

人工智能
Spring AI 的 Message API(消息接口) 為多模態(tài)大型語言模型(LLMs)提供了所有必要的抽象層支持,開發(fā)者可通過該接口實(shí)現(xiàn)跨模態(tài)數(shù)據(jù)的無縫整合與交互,無需底層適配即可構(gòu)建支持文本、圖像、音頻等多輸入源的AI應(yīng)用。

環(huán)境:SpringBoot3.4.2

1. 簡介

人類處理知識時,會同時通過多種數(shù)據(jù)輸入模式進(jìn)行。我們的學(xué)習(xí)方式、經(jīng)驗(yàn)積累本質(zhì)上都是多模態(tài)的。我們并非僅依賴視覺、僅依賴聽覺或僅依賴文本,而是綜合運(yùn)用多種感官。

與之相反,傳統(tǒng)機(jī)器學(xué)習(xí)往往專注于針對單一模態(tài)數(shù)據(jù)進(jìn)行處理的專用模型。例如,我們開發(fā)了用于文本轉(zhuǎn)語音或語音轉(zhuǎn)文本任務(wù)的音頻模型,以及用于目標(biāo)檢測和分類等任務(wù)的計(jì)算機(jī)視覺模型。

然而,新一輪的多模態(tài)大型語言模型浪潮正悄然興起。例如,OpenAI 的 GPT-4o、谷歌的 Vertex AI Gemini 1.5、Anthropic 的 Claude3,以及開源模型 Llama3.2、LLaVA 和 BakLLaVA 等,均能夠接受多種輸入(包括文本、圖像、音頻和視頻),并通過整合這些輸入生成文本響應(yīng)。

Spring AI 多模態(tài)能力

多模態(tài)(Multimodality)指模型能夠同時理解并處理來自多種來源的信息,涵蓋文本、圖像、音頻及其他數(shù)據(jù)格式。

Spring AI 的 Message API(消息接口) 為多模態(tài)大型語言模型(LLMs)提供了所有必要的抽象層支持,開發(fā)者可通過該接口實(shí)現(xiàn)跨模態(tài)數(shù)據(jù)的無縫整合與交互,無需底層適配即可構(gòu)建支持文本、圖像、音頻等多輸入源的AI應(yīng)用。

Spring AI Message APISpring AI Message API

說明:

UserMessage 的 content 字段 用于承載主要文本輸入,而可選的 media 字段 則支持添加一種或多種跨模態(tài)附加內(nèi)容(如圖像、音頻、視頻等)。字段通過 MimeType 明確標(biāo)識模態(tài)類型,以定義數(shù)據(jù)格式(如 image/jpeg、audio/mp3)。

接下來,我們將通過實(shí)例演示有關(guān)圖片識別的實(shí)例。

2.實(shí)戰(zhàn)案例

準(zhǔn)備環(huán)境

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

配置文件

spring:
  ai:
    openai:
      api-key: sk-xxxooo
      base-url: https://api.xty.app
      chat:
        options:
          model: gpt-4

2.1 圖片分析

首先,我們準(zhǔn)備如下的這張圖片,我們對該圖片進(jìn)行分析,看看大模型能分析出什么內(nèi)容來:

示例代碼:

private final ChatClient chatClient ;
@GetMapping("/image")
public String image() {
  return this.chatClient
      .prompt()
      .user(u -> u.text("你看到了什么?")
          .media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("static/multimodal.test.png")))
      .call()
      .content() ;
}

輸出結(jié)果

圖片圖片

正確的分析出圖片中的內(nèi)容。

2.2 身份證識別

下面我們在準(zhǔn)備一張身份證,看看是否能正確的讀取出身份證中的內(nèi)容信息。

圖片圖片

示例代碼:

@GetMapping("/sfz")
public String sfz() {
  String text = """
        輸出該身份證中的姓名(name), 性別(sex), 民族(nation), 出生(birth), 住址(address), 身份證號碼(idNo)。
        最終以json格式輸出。
      """;
  return this.chatClient
      .prompt()
      .user(u -> {
        u.text(text)
            .media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("static/sfz.jpg"));
      })
      .call()
      .content() ;
}

輸出結(jié)果

圖片圖片

正確識別出身份證中的所有信息。

2.3 結(jié)構(gòu)化輸出

以下示例將演示通過上傳汽車圖片方式分析圖片,并由系統(tǒng)以結(jié)構(gòu)化 JSON 格式返回分析結(jié)果(例如各顏色,總數(shù))。

定義數(shù)據(jù)模型

public record CarCount(List<CarColorCount> counts, int total) {
}
public record CarColorCount(String color, int count) {
}

接著,定義如下Service 發(fā)送圖片到OpenAI進(jìn)行分析

@Service
public class CarCountService {
  private final ChatClient chatClient;
  public CarCountService(ChatClient.Builder chatClientBuilder) {
    this.chatClient = chatClientBuilder.build();
  }
  public CarCount getCarCount(InputStream imageInputStream, String contentType, String colors) {
    String text = """
          1.統(tǒng)計(jì)圖像中不同顏色車輛的數(shù)量
          2.用戶通過提示詞(prompt)提供圖像,并指定需統(tǒng)計(jì)的顏色
          3.僅統(tǒng)計(jì)用戶提示詞中明確指定的顏色(忽略其他顏色)
          4.過濾用戶提示詞中的非顏色信息(如無關(guān)文本或無效描述)
          5.若用戶提示詞中未指定任何顏色,直接返回總數(shù)為 0
        """ ;
    return chatClient.prompt()
        .system(systemMessage -> systemMessage
            .text(text))
        .user(userMessage -> userMessage
            .text(colors)
            .media(MimeTypeUtils.parseMimeType(contentType), new InputStreamResource(imageInputStream)))
        .call()
        .entity(CarCount.class);
  }
}

REST接口

@PostMapping("/count")
public ResponseEntity<?> getCarCounts(@RequestParam("colors") String colors,
    @RequestParam("file") MultipartFile file) {
  try (InputStream inputStream = file.getInputStream()) {
    var carCount = carCountService.getCarCount(inputStream, file.getContentType(), colors);
    return ResponseEntity.ok(carCount) ;
  } catch (IOException e) {
    return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("圖片上傳失敗");
  }
}

接下來,我們準(zhǔn)備如下的圖片

圖片圖片

輸出結(jié)果

圖片圖片

責(zé)任編輯:武曉燕 來源: Springboot全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2020-02-05 15:29:56

計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備

2018-01-04 11:28:23

2025-04-08 02:22:22

SpringJackson注解

2009-06-12 11:34:01

2014-11-12 17:45:14

網(wǎng)絡(luò)身份識別

2013-09-11 19:10:59

2023-05-24 07:16:29

2025-02-10 00:01:00

SpringOpenCV身份證

2025-06-30 02:10:00

2017-05-02 15:10:56

病歷智慧城市數(shù)據(jù)

2021-11-04 14:06:15

大數(shù)據(jù)疫情技術(shù)

2020-11-10 10:16:38

Java身份證號碼編程語言

2011-04-29 09:40:59

復(fù)印二代身份證多功能一體機(jī)

2021-04-11 07:23:14

微信連續(xù)轉(zhuǎn)賬移動應(yīng)用

2011-04-25 10:00:08

聯(lián)想7205身份證復(fù)印

2017-12-27 11:55:24

2017-12-26 10:43:00

微信身份證網(wǎng)證微警云聯(lián)盟

2010-09-09 10:10:29

SQL函數(shù)轉(zhuǎn)換

2022-01-24 07:16:01

12306電子乘車證明身份證
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號