大模型提升翻译质量拓宽应用

过去我们主要依赖百度或其他团队提供的翻译API来实现中英、英中、日中、中日等多种语言间的翻译。如今,随着大模型技术的发展,其在内容理解方面的能力已经远远超过了上一代的翻译软件。这意味着我们现在可以完全依靠大模型来提供更加精准流畅的翻译服务,不仅提升了翻译质量,也拓宽了应用场景。

本例子使用spring ai alibaba + QWen千问 api 完成,你可以跑通以后换自己的实现。

QWen 目前 有100万免费Token额度,可以快速实现需求。同时,因为qwen 也是个开源的模型,我们可以自己搭建模型来实现免费使用

Spring AI Alibaba详解:轻松接入阿里云AI服务

Spring AI Alibaba是Spring AI的一个实现,它基于Spring AI的API完成了阿里云百炼系列云产品的接入。如同Spring Cloud Alibaba整合了阿里巴巴的最佳实践一样,Spring AI Alibaba也代表着国内对Spring AI框架最优秀的落地应用之一。通过Spring AI Alibaba,开发者可以轻松地利用阿里云提供的大模型服务,包括但不限于对话、文生图、文生语音等功能。Spring AI Alibaba的一大优势在于其良好的抽象层设计,这使得用户可以在不同AI提供者间灵活切换,只需更改配置即可,极大地减少了迁移成本。此外,Spring AI Alibaba还提供了诸如Prompt模板、RAG(检索增强生成)等高级特性,进一步丰富了开发者的工具箱。本文将重点介绍如何使用Spring AI Alibaba中的Prompt模板和模型调用能力来快速为项目添加强大的AI功能。

阿里巴巴云开发的预训练语言模型Qwen介绍

通义千问Qwen是阿里巴巴云开发的预训练语言模型,在MMLU、TheoremQA、GPQA等基准测评中表现出色,超越了Llama 3 70B。它在Hugging Face开源大模型排行榜Open LLM Leaderboard上荣登榜首,展示了其卓越的能力和广泛的应用潜力。

使用SpringBoot整合Spring AI Alibaba实现英译中功能

为了基于Spring Boot集成Spring AI Alibaba构建一个英文翻译成中文的项目,并且使用prompt能力与chatClient能力,以及通过流返回接口支持CORS跨域请求,可以按照以下步骤进行配置和编码:

一、环境准备

  1. JDK版本:确保你的开发环境中安装了JDK17或以上版本。
  1. Spring Boot版本:保证你的Spring Boot项目版本为3.3.x系列。

二、获取API Key

访问阿里云百炼页面并登录您的账号。在服务列表中找到“百炼大模型推理”服务并开通。成功后创建一个新的API Key用于后续接入通义千问等AI功能。

三、设置环境变量

将获得的API Key设置为环境变量,或者直接在application.properties文件中配置:

spring.ai.dashscope.api-key=这里填写你的API_KEY

四、添加依赖及仓库配置

由于Spring AI Alibaba的相关库还未正式发布到Maven中央仓库,我们需要手动添加Spring官方提供的仓库地址来获取最新版本的库。请在项目的pom.xml文件中加入如下内容:

<repositories>
    <repository>
        <id>sonatype-snapshots</id>

        <url>https://oss.sonatype.org/content/repositories/snapshots</url>

        <snapshots>
            <enabled>true</enabled>

        </snapshots>

    </repository>

    <repository>
        <id>spring-milestones</id>

        <name>Spring Milestones</name>

        <url>https://repo.spring.io/milestone</url>

        <snapshots>
            <enabled>false</enabled>

        </snapshots>

    </repository>

    <repository>
        <id>spring-snapshots</id>

        <name>Spring Snapshots</name>

        <url>https://repo.spring.io/snapshot</url>

        <releases>
            <enabled>false</enabled>

        </releases>

    </repository>

</repositories>

<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>

        <artifactId>spring-ai-alibaba-starter</artifactId>

        <version>1.0.0-M3.1</version> <!-- 确保使用的是最新版 -->
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-webflux</artifactId>

    </dependency>

    <!-- 其他必要的依赖项 -->
</dependencies>

这里特别指出了spring-ai-alibaba-starterspring-boot-starter-webflux,前者用于接入AI功能,后者则提供了对Reactive编程的支持,包括处理Flux类型的响应。

五、编写Controller类

接下来,我们将创建一个简单的控制器类来处理翻译请求。这个控制器将接收英文文本作为输入,并利用ChatClient生成中文翻译结果。同时,它还启用了CORS以允许跨源请求。

@RestController
@RequestMapping("/ai")
@CrossOrigin(origins = "*") // 启用CORS
public class TranslationController {

    private final ChatClient chatClient;

    public TranslationController(ChatClient.Builder builder) {
        this.chatClient = builder.build();
    }

    @GetMapping(value = "/steamChat")
    public Flux<String> steamChat(@RequestParam String input) {
        Prompt prompt = new Prompt("Translate the following English text to Chinese: " + input);
        return chatClient.prompt(prompt).stream().content();
    }
}

在这个例子中,我们定义了一个名为TranslationController的控制器,它有一个GET方法/steamChat接受input参数作为要翻译的英文文本。然后构造一个提示给ChatClient,告诉它这是一条需要被翻译成中文的信息。最后,使用stream().content()方法异步地返回翻译结果。

六、启动应用

完成上述所有步骤后,就可以运行你的Spring Boot应用程序了。访问 http://localhost:8080/ai/steamChat?input=Hello%20World 测试是否能正确返回中文翻译的结果"你好 世界"。

以上就是基于Spring Boot集成Spring AI Alibaba实现英文至中文翻译服务的全部过程。希望对你有所帮助!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐