当前位置: 首页 > news >正文

Orange 开源项目 - 集成阿里云大模型

1 阿里云的大模型服务平台百炼

阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在5分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。

2 集成阿里云大模型

2.1 获取API-KEY

获取阿里API-KEY,请参考阿里官网「获取阿里API-KEY」

2.2 引入Maven依赖

        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter</artifactId>
            <version>1.0.0-M5.1</version>
        </dependency>

2.3 集成对话模型(Chat Model)

 @Override
    public Flux<Result<ConversationReplyVO>> conversationStream(ConversationParam param, List<ChatSessionRecordVO> contextMessageList) {
        List<Message> messages = new ArrayList<>(MessageConverter.toMessageList(contextMessageList));
        messages.add(new UserMessage(param.getPrompt()));

        Prompt prompt = new Prompt(messages, DashScopeChatOptions.builder()
                .withModel(param.getModelCode())
                .build());
        Flux<ChatResponse> stream = chatModel.stream(prompt);
        return stream
                .takeWhile(chatResponse -> Objects.nonNull(chatResponse) && Objects.nonNull(chatResponse.getResult())
                        && Objects.nonNull(chatResponse.getResult().getOutput()))
                .map(chatResponse -> {
                    if (log.isDebugEnabled()) {
                        log.debug("chatResponse: {}", chatResponse);
                    }
                    Usage usage = chatResponse.getMetadata().getUsage();
                    String content = chatResponse.getResult().getOutput().getContent();
                    String finishReason = chatResponse.getResult().getMetadata().getFinishReason();

                    ConversationReplyVO replyVO = ConversationReplyVO.builder()
                            .event("STOP".equalsIgnoreCase(finishReason) ? ConverstationEventEnum.FINISHED : ConverstationEventEnum.REPLY)
                            .content(content)
                            .tokenUsage(TokenUsageVO.builder()
                                    .promptTokens(usage.getPromptTokens())
                                    .generationTokens(usage.getGenerationTokens())
                                    .totalTokens(usage.getTotalTokens())
                                    .build())
                            .build();
                    return ResultWrapper.ok(replyVO);
                });
    }
  • 项目源码:https://github.com/hengzq/orange-ai

2.4 集成文生成图模型(Image Model)

    @Override
    public ImageResponse textToImage(GenerateImageParam param) {
        ImageOptions options = DashScopeImageOptions.builder()
                .withModel(param.getModelCode())
                .withHeight(param.getHeight())
                .withWidth(param.getWidth())
                .withN(param.getQuantity())
                .build();

        ImagePrompt imagePrompt = new ImagePrompt(param.getPrompt(), options);
        return imageModel.call(imagePrompt);
    }
  • 项目源码:https://github.com/hengzq/orange-ai

2.5 在线体验

  • 在线体验: http://tiny.hengzq.cn
    在这里插入图片描述

3 项目体验

  • Orange 官网: http://hengzq.cn
  • 在线体验: http://tiny.hengzq.cn
  • 项目文档: http://hengzq.cn/orange-monomer/
  • 单体架构-后端源码下载【GitHub】: https://github.com/hengzq/orange-monomer
  • 单体架构-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-monomer
  • 微服务版本-后端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 微服务版本-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud
  • 前端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 前端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud

注:前端项目设计灵活,能够同时兼容后端的单体架构和微服务架构

4 相关文档

  • Orange 开源项目介绍
  • Orange 单体架构 - 快速启动
  • Orange 开源项目 - 集成阿里云大模型

相关文章:

  • 【信息系统项目管理师-案例真题】2008下半年案例分析答案和详解
  • 自定义Spring Boot Starter(官网文档解读)
  • 测试学习java第二天
  • 国标28181协议在智联视频超融合平台中的接入方法
  • BugKu练习记录:这不是md5
  • 实现实时数据仓库开源项目
  • 使用VS Code远程开发OpenAI API
  • 【第二天】零基础学习量化基础代码总览-持续更新
  • 【Rust中级教程】2.8. API设计原则之灵活性(flexible) Pt.4:显式析构函数的问题及3种解决方案
  • Spring Boot面试题
  • 【Linux内核】【锁机制】RCU机制入门
  • Python天梯赛系统备考-字符串篇
  • Android之图片保存相册及分享图片
  • 新型物联网电瓶车充电桩在居民区的应用优势
  • Git 常用指令及其说明
  • FutureTask 和 CompletableFuture
  • 更好用更现代的字模软件
  • 9.【线性代数】—— 线性相关性, 向量空间的基,维数
  • vue 3D 翻页效果
  • Vscode编辑器获取更新远程最新分支
  • 习近平:坚持科学决策民主决策依法决策,高质量完成“十五五”规划编制工作
  • 以军称已开始在加沙的新一轮大规模攻势
  • 终于,俄罗斯和乌克兰谈上了
  • 中央提级巡视后,昆明厅官郭子贞接受审查调查
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查