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

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

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

2 集成阿里云大模型

2.1 获取API-KEY

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

2.2 引入Maven依赖

xml 复制代码
        <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)

java 复制代码
 @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);
                });
    }

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

java 复制代码
    @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);
    }

2.5 在线体验

3 项目体验

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

4 相关文档

相关推荐
程序员Better2 小时前
一口气拆穿Skill/MCP/RAG/Agent/OpenClaw底层逻辑
人工智能·开源·agent
小仓桑3 小时前
【Agent智能体项目实战一】阿里云通义千问兼容 OpenAI 接口实现 AI 对话
人工智能·阿里云·云计算·agent
小鱼儿ai4 小时前
用 OpenClaw 搭建自媒体自动化工作流(完整实战)
开源
AI周红伟4 小时前
周红伟:豆包大模型的尽头是直播间,豆包开启AI购物内测 电商平台加码“一句话购物”
人工智能·阿里云·云计算·腾讯云·openclaw
威联通安全存储5 小时前
某大型食品饮料企业:基于威联通 TS-h1290FX 的中央数据管控与合规实践
大数据·人工智能·云计算
大树885 小时前
国产液冷产业链的突破:应对龙虾大模型等终端算力需求激增的倒逼效应
科技·ai·云计算
老星*6 小时前
Lucide Icons:开源、轻量、设计师友好的现代图标库
ui·开源·github
未来之窗软件服务7 小时前
阿里云 page-agent 核心逻辑梳理[AI人工智能(六十一)]—东方仙盟
人工智能·阿里云·云计算·仙盟创梦ide·东方仙盟
柯儿的天空8 小时前
【OpenClaw 全面解析:从零到精通】第 019 篇:GoClaw 企业版——从开源到商业化的演进之路
gpt·开源·aigc·copilot·ai编程·ai写作·agi
武汉唯众智创8 小时前
云计算大数据实训平台:从私有云到容器化的教学实现|原理+实操+踩坑+性能全解析
大数据·人工智能·云计算·云计算实训室·大数据实训室·职校云计算大数据实训室建设·职校实训室建设