springboot 项目整合 AI (文心一言)

百度智能云网址:https://cloud.baidu.com/?from=console

注册——个人认证——登录成功

第一步:点击千帆大模型平台

第二步:点击应用接入——创建应用

第三步:点击接口文档——API列表——可以点击指定模型进行查看调用示例https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu

第四步:调用调试——百度智能云登录成功——点击个人中心——安全认证——点击显示输入验证码获取Access Key和Secret Key

第五步:引入依赖

<!--引入文心一言依赖-->
        <dependency>
            <groupId>com.baidubce</groupId>
            <artifactId>qianfan</artifactId>
            <version>0.0.9</version>
        </dependency>

第六步:调用示例——单轮——多轮——流式

单轮:一个人提问题

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(classes = HerbigApplicationTests.class)
class HerbigApplicationTests {

    @Test
    void singleWheel() {//单轮
        // 使用安全认证AK/SK鉴权参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak" , "your_iam_sk" );
        //指定模型
        ChatResponse resp = qianfan.chatCompletion()
                .model("ERNIE-4.0-8K")
                .addMessage( "user","你好,你是谁?")
                .execute();
        System.out.println(resp.getResult());
    }
}

结果:

多轮:根据之前回复的历史数据结合最后一个问题 然后回答

@Test
    void multiWheel() {//多轮
        // 使用安全认证AK/SK鉴权参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak" , "your_iam_sk" );
        // 多轮对话
        ChatResponse resp = qianfan.chatCompletion()
                .model("ERNIE-4.0-8K")
                .addMessage("user", "你好")
                .addMessage("assistant", "你好!请问有什么我可以帮助你的吗?")
                .addMessage("user", "我在济南,周末可以去哪里玩?")
                .addMessage("assistant", "济南是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方让您深入了解中国和世界的文化历史。")
                .addMessage("user", "简单介绍下济南的美食")
                .execute();
        System.out.println(resp.getResult());
    }

结果:

流式:结果分段返回

@Test
    void flowType() {//流式
        // 使用安全认证AK/SK鉴权参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak" , "your_iam_sk" );

        Gson gson = new Gson();
        qianfan.chatCompletion()
                .model("ERNIE-4.0-8K")
                .addMessage("user", "简单介绍下趵突泉")
                // 启用流式返回
                .executeStream()
                .forEachRemaining(chunk -> System.out.print(gson.toJson(chunk)));
    }

### Spring Boot 整合 AI 技术方案 #### 配置依赖 为了使Spring Boot能够与AI技术进行整合,首先需要引入必要的依赖库。对于不同的AI服务提供商,具体的依赖会有所不同。 针对OpenAI的集成,在`pom.xml`中加入如下依赖[^1]: ```xml <dependency> <groupId>com.spring.ai</groupId> <artifactId>spring-ai-openai-starter</artifactId> <version>${latest.version}</version> </dependency> ``` 而对于智谱AI,则应添加相应的starter包[^4]: ```xml <dependency> <groupId>com.zhipuai</groupId> <artifactId>zhipu-spring-boot-starter</artifactId> <version>${specific.version}</version> </dependency> ``` #### 应用属性配置 接着是在项目的application.properties或application.yml文件里定义API密钥及其他连接参数。这里给出两个例子: 对于OpenAI接口,可以在yaml格式下这样写[^3]: ```yaml spring: ai: openai: api-key: your_openai_api_key_here base-url: https://api.openai.com/v1/ ``` 而针对智谱AI的服务端点和认证信息则可按此形式指定: ```yaml ai: apiKey: zhipu_ai_api_key_value ``` #### 编写业务逻辑代码 完成上述准备工作之后,便可以通过编写Java类来调用这些第三方平台所提供的功能了。下面是一个简单的示例,展示了如何创建一个REST控制器用于触发向量检索请求并返回结果给前端用户。 ```java @RestController @RequestMapping("/chat") public class ChatController { @Autowired private ClientV4 client; @PostMapping("/query") public ResponseEntity<String> query(@RequestBody String message){ try { final Response response = client.getCompletions().create(message); return new ResponseEntity<>(response.choices().get(0).text(), HttpStatus.OK); } catch (Exception e) { logger.error(e.getMessage()); return new ResponseEntity<>("Error occurred", HttpStatus.INTERNAL_SERVER_ERROR); } } } ``` 通过这种方式,不仅可以轻松地把强大的自然语言处理能力融入到现有的Web应用程序之中,还能够让开发者专注于核心应用场景的设计而不必担心底层通信细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Herbig

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值