开源的 LLM 应用开发平台Dify的安装和使用

news2025/4/10 13:19:27

文章目录

  • 前提环境
  • 应用安装
  • deocker desktop镜像源配置
  • Dify简介
  • Dify本地docker安装
  • Dify安装ollama插件
  • Dify安装硅基流动插件
  • 简单应用练习
  • 进阶应用练习
    • 数据库图像检索与展示助手
    • echart助手可视化

前提环境

  • Windows环境+ docker desktop
  • 魔法环境:访问Dify项目
  • ollama
  • 电脑硬件:2核4G以上

应用安装

  • 自行安装docker desktop和ollama
  • 推荐ollama安装deepseek-r1:14b轻量化模型,如果本地硬件条件不足,可以使用硅基流动在线API

deocker desktop镜像源配置

在这里插入图片描述

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "http://ghcr.io",
    "https://docker.nju.edu.cn",
    "https://dockerhub.azk8s.cn",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud",
    "https://noohub.ru"
  ]
}

Dify简介

  • Dify 是一款开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式 AI 应用的创建与部署。其核心定位是结合 后端即服务(BaaS) 和 LLMOps 理念,通过低代码/无代码的可视化界面,降低开发者与非技术人员构建 AI 应用的门槛。
  1. 核心定位与功能
  • 开源框架:Dify 并非单一的 AI 模型,而是一个应用开发框架,支持开发者快速搭建生产级的 AI 应用,如聊天助手、文本生成工具、智能代理(Agent)等 。
  • 模块化设计:通过可视化编排界面,用户可像“搭积木”一样组合功能模块,例如定义 Prompt、集成外部工具、管理数据集等,无需深入编程。
  • 多模型支持:兼容主流大模型(如 GPT-4、Claude3、Llama3、通义千问等),并可自定义接入本地或云端模型
  1. 核心技术特性
  • RAG(检索增强生成): Dify 提供高效的文档处理与检索能力,支持上传 PDF、TXT 等格式文件,自动完成文本分块、向量化索引及混合检索(向量+全文),提升生成内容的准确性与丰富度 。例如,用户可构建私有知识库,让 AI 回答基于企业数据的专业问题
  • Agent(智能代理): 支持通过 Function Calling 或 ReAct 框架构建智能代理,赋予 AI 任务分解、工具调用(如 Google 搜索、图像生成)等高级能力。例如,客服 Agent 可自动解析用户需求并调用 API 完成订单查询 。
  • 工作流编排: 提供可视化画布,允许用户通过节点组合定义复杂业务流程(如多步翻译、数据分析),支持条件分支、代码执行、HTTP 请求等逻辑节点,实现自动化任务处理。
  1. 应用场景
  • 智能客服与对话助手:支持多轮对话、上下文记忆及知识库集成,适用于企业客服系统或个性化问答场景 。
  • 内容生成与管理:自动生成文章、摘要、代码,或解析长文档进行结构化提取(如合同分析、发票识别) 。
  • 商业智能:结合企业数据库生成数据报告,通过 NL2SQL 将自然语言查询转换为数据库指令 。
  • 企业效能提升:通过私有化部署,将 LLM 嵌入内部系统,实现流程自动化与智能升级(如千人千面的客户体验)

Dify本地docker安装

  • Dify官网
  • Dify github
  • Dify github release
  1. 通过github下载源码后,进入dify-1.1.3\docker.env.example文件复制并修改为.env文件
    在这里插入图片描述
  2. .env文件中最后添加一下内容
    #启用自定义模型
    CUSTOM_MODEL_ENABLED=true
    #指定Olama的API地址(根据部署环境调整IP)
    OLLAMA_API_BASE_URL=host.docker.internal:11434
    
  3. 然后,该该目录下打开终端启动容器服务
    docker-compose up
    
  4. 访问localhost/install即可进入安装配置界面,首先注册邮箱、用户名和密码,然后使用新创建的账号进行登录。
    在这里插入图片描述

Dify安装ollama插件

  1. 打开Dify应用市场,搜索需要的插件并点击详情进行瞎下载。(不仅建议进行在线安装,速度较慢)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 使用ollama命令查看本地模型
    在这里插入图片描述
  2. 打开ollama添加模型并配置连接信息
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Dify安装硅基流动插件

  • 操作方法同Dify安装ollama插件,不再赘述。

简单应用练习

  1. 打开工作室,创建空白应用
    在这里插入图片描述
  2. 选择聊天助手,填写基本信息
    在这里插入图片描述
  3. 可以填写你的提示词,然后点击调试与预览,进行测试
    在这里插入图片描述

进阶应用练习

数据库图像检索与展示助手

  1. ollama安装向量化模型
ollama run bge-m3
  1. 准备知识库所需文件亲子运动.txt,内容如下
特别提示:注意保暖,避免孩子受寒。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=2495318208,4233708303&fm=253&fmt=auto&app=138&f=JPEG?w=708&h=500)
##
亲子运动项目名称:家庭篮球赛
适合年龄:7~14岁
运动时间:20~30分钟
运动项目介绍:家长与孩子进行简易篮球比赛,提高孩子的篮球技能。
运动目标:培养孩子的球技和团队合作意识。
运动规则:简化篮球规则,进行半场3对3或1对1比赛。
特别提示:穿着合适的运动装备,注意安全。
运动图片链接:[点击查看](https://img0.baidu.com/it/u=3195478262,213097067&fm=253&fmt=auto&app=138&f=JPEG?w=700&h=467)
##
亲子运动项目名称:亲子瑜伽
适合年龄:5~12岁
运动时间:15~20分钟
运动项目介绍:家长与孩子一起练习瑜伽动作,增进亲子间的亲密关系。
运动目标:提高孩子的柔韧性和平衡能力,放松身心。
运动规则:跟随瑜伽教程,一起完成一系列瑜伽动作。
特别提示:穿着舒适,保持呼吸均匀。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=2561021092,817698414&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500)
##
亲子运动项目名称:家庭接力跑
适合年龄:6~12岁
运动时间:15~20分钟
运动项目介绍:家庭成员分成两队,进行接力跑比赛。
运动目标:提高孩子的奔跑速度和团队协作能力。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=975344947,3030921339&fm=253&fmt=auto&app=138&f=JPEG?w=720&h=480)
##
亲子运动项目名称:飞盘争夺战
适合年龄:6~12岁I
运动时间:15~20分钟
运动项目介绍:家长与孩子进行飞盘传递和接住游戏。
运动目标:锻炼孩子的反应速度和手眼协调能力。
运动规则:在规定区域内,通过飞盘传递,争取让对方接不住飞盘。
特别提示:选择开阔的场地,避免飞盘伤人。
运动图片链接:[点击查看](https://img0.baidu.com/it/u=3788427895,2518031093&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500)
##
亲子运动项目名称:家庭足球赛
适合年龄:5~12岁
运动时间:20~30分钟
运动项目介绍:家长与孩子进行简易足球比赛,享受足球乐趣。
运动目标:提高孩子的足球技能和团队精神。
运动规则:简化足球规则,进行小场地比赛。
特别提示:穿着足球鞋,注意场地安全。
运动图片链接:
##
亲子运动项目名称:亲子攀岩
适合年龄:8~14岁
运动时间:30~45分钟
运动项目介绍:家长与孩子一起挑战攀岩墙,锻炼勇气和力量。
运动目标:提高孩子的攀爬能力和自信心。
运动规则:在专业人员的指导下,完成攀岩墙的挑战。
特别提示:确保安全装备穿戴正确,听从指导员指挥。
运动图片链接:
##
亲子运动项目名称:家庭自行车赛
适合年龄:7~14岁
运动时间:30~45分钟
运动项目介绍:家长与孩子进行自行车比赛,享受户外运动。
运动目标:提高孩子的骑行技巧和耐力。
运动规则:在公园或自行车道上,设定一个往返赛道进行比赛。
特别提示:佩戴头盔,遵守交通规则。
运动图片链接:
  1. 创建知识库,上传文本文件
    在这里插入图片描述

  2. 设置分段标识和索引方式、向量化模型
    在这里插入图片描述

  3. 创建Chatflow应用,并填写基本信息,点击创建
    在这里插入图片描述

  4. 设置具体的工作流程,整体流程如图。
    在这里插入图片描述

  5. 知识检索具体设置
    在这里插入图片描述

  6. LLM设置:可以直接选择使用deepseek-r1模型,上下文选择知识检索的结果result

    • 填写system提示词,内容如下:
    ##角色
    你是一位亲子运动游戏创意专家,根据提供的{{#context#}}信息生成用户需要的亲子运动游戏。不要改变亲子运动游戏格式,要包含亲子运
    动项目名称、适合年龄、运动时间、运动目标、运动规则、特别提示。
    ##限制
    1.根据用户的具体提问回答问题,不要一下子把常见问题都输出给用户,
    2.请使用json格式输出,不要输出任何与json格式无关的内容。
    ##输出要求
    -如果输出的内容包含图片URL,请使用以下JSON格式输出:
    {
      "content""示例输出内容",
      "imageUrl""图片地址"
    }
    3. 果输出的内容不包含图片URL,请使用以下JSON格式输出:
    {
       "content""示例输出内容"
    }
    
    • user相关设置,选择sys.query变量
      在这里插入图片描述
  7. 参数提取器具体设置如下:
    在这里插入图片描述

  8. 添加分支设置:如果图片地址为空,直接输出结果;否则,通过http请求获取图片展示输出。
    在这里插入图片描述

  9. http请求设置
    在这里插入图片描述

  10. 直接回答1、2的设置
    在这里插入图片描述

  11. 点击发布,同时运行测试结果
    在这里插入图片描述

  12. 测试结果如下:
    在这里插入图片描述

echart助手可视化

  1. 创建名为echart助手可视化的chatflow应用,整体设置如下:
    在这里插入图片描述
  2. 创建电影数据.md,文件内容如下:
| 电影名称               | 上映日期   | 票房(亿元) | 成本(亿元) | 豆瓣评分 | 上映周数 | 日均票房(万) | 地区分布             |
|------------------------|------------|-------------|-------------|----------|----------|----------------|----------------------|
| 星际远征:重启          | 2023-07-15 | 42.3        | 8.5         | 8.7      | 12       | 352.5          | 北美;欧洲;亚洲        |
| 长安十二时辰            | 2024-02-10 | 36.8        | 6.2         | 9.1      | 9        | 408.9          | 中国;东南亚           |
| 深海迷航               | 2023-12-01 | 28.5        | 5.8         | 7.9      | 15       | 190.0          | 全球                 |
| 侠隐江湖               | 2024-05-01 | 18.4        | 3.5         | 8.3      | 6        | 306.7          | 中国;韩国;日本        |
| 机械之心               | 2023-11-20 | 51.2        | 12.0        | 8.5      | 18       | 283.7          | 北美;中国;欧洲        |
| 时空恋人               | 2024-03-22 | 14.7        | 2.8         | 8.8      | 7        | 210.0          | 中国;港台             |
| 极地救援               | 2023-10-05 | 33.6        | 7.3         | 7.6      | 11       | 305.5          | 北美;欧洲             |
| 山海经:饕餮现世        | 2024-06-15 | 24.9        | 4.5         | 8.4      | 5        | 498.0          | 亚洲                 |
| 银河护卫队:终章        | 2023-09-01 | 65.8        | 15.0        | 8.9      | 16       | 411.3          | 全球                 |
| 青蛇传说               | 2024-04-12 | 19.2        | 3.2         | 8.6      | 8        | 240.0          | 中国;东南亚           |
| 火星殖民               | 2023-08-30 | 47.5        | 9.8         | 7.8      | 13       | 365.4          | 北美;中国             |
| 镜中谜城               | 2024-07-19 | 12.3        | 2.5         | 8.2      | 4        | 307.5          | 中国;日本             |
| 恐龙星球               | 2023-06-10 | 55.1        | 11.5        | 8.0      | 14       | 393.6          | 全球                 |
| 刺客信条:长安          | 2024-01-05 | 31.7        | 6.5         | 8.7      | 10       | 317.0          | 中国;韩国             |
| 量子危机               | 2023-05-20 | 72.4        | 18.0        | 7.5      | 20       | 362.0          | 北美;欧洲;亚洲        |
| 白蛇:缘起             | 2024-08-08 | 16.9        | 3.0         | 9.0      | 6        | 281.7          | 中国                 |
| 异形觉醒               | 2023-04-15 | 29.8        | 7.2         | 7.2      | 17       | 175.3          | 北美;日本             |
| 封神榜:三界之战        | 2024-09-28 | 44.2        | 8.0         | 8.5      | 8        | 552.5          | 中国;东南亚           |
| 侏罗纪世界:新生代      | 2023-03-12 | 68.3        | 16.5        | 8.1      | 19       | 359.5          | 全球                 |
| 雪国列车               | 2024-10-15 | 27.6        | 5.5         | 8.4      | 7        | 394.3          | 韩国;日本             |
| 三体:黑暗森林         | 2023-02-14 | 83.6        | 20.0        | 9.3      | 22       | 379.1          | 全球                 |
| 花木兰:巾帼传奇       | 2024-11-11 | 38.7        | 7.8         | 8.8      | 6        | 645.0          | 中国;北美             |
| 盗梦空间2             | 2023-01-05 | 59.4        | 14.2        | 8.7      | 15       | 396.0          | 北美;欧洲;亚洲        |
| 哪吒:魔童降世2        | 2024-12-25 | 51.9        | 9.5         | 9.0      | 5        | 1038.0         | 全球                 |
| 阿凡达:水之道         | 2023-07-20 | 91.2        | 25.0        | 8.9      | 18       | 506.7          | 全球                 |
| 流浪地球3             | 2024-04-30 | 77.5        | 18.8        | 9.2      | 10       | 775.0          | 中国;北美             |
| 功夫熊猫:神龙大侠     | 2023-08-15 | 34.6        | 6.5         | 8.3      | 12       | 288.3          | 全球                 |
| 哈利波特:魔法遗产     | 2024-06-06 | 62.1        | 15.5        | 8.6      | 9        | 690.0          | 欧洲;北美;亚洲        |
| 复仇者联盟:无限战争2  | 2023-05-01 | 105.4       | 30.0        | 8.8      | 20       | 527.0          | 全球                 |
| 姜子牙:封神再临       | 2024-07-07 | 29.3        | 5.2         | 8.9      | 8        | 366.3          | 中国;东南亚           |
  1. 开始部分设置
    在这里插入图片描述

  2. 文档提取器设置
    在这里插入图片描述

  3. 格式化输出设置,记得数据中部分设置上一步的变量,模型可以选择deepseek-r1
    在这里插入图片描述

  4. 参数提取器设置
    在这里插入图片描述

  5. 代码执行部分设置,具体设置和脚本代码如下
    在这里插入图片描述

import csv
import json

def main(csv_string):
    # 将CSV字符串分割成行
    lines = csv_string.strip().split('\n')
    
    # 使用csv模块读取数据
    reader = csv.reader(lines)
    
    # 将所有行转换为列表
    data = [row for row in reader]
    
    # 将数字字符串转换为浮点数
    for row in data[1:]:  # 跳过标题行
        for i in range(1, len(row)):
            try:
                row[i] = float(row[i])
            except ValueError:
                pass
    
    # 创建完整的Echarts配置
    echarts_config = {
        "legend": {},
        "tooltip": {},
        "dataset": {
            "source": data
        },
        "xAxis": [
            {"type": "category", "gridIndex": 0},
            {"type": "category", "gridIndex": 1}
        ],
        "yAxis": [
            {"gridIndex": 0},
            {"gridIndex": 1}
        ],
        "grid": [
            {"bottom": "55%"},
            {"top": "55%"}
        ],
        "series": [
            # 第一个网格中的折线图系列
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            # 第二个网格中的柱状图系列
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1}
        ]
    }
    
    # 生成输出文件
    output = f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'
    return {"result": output}
  1. 最后回答部分设置
    在这里插入图片描述

  2. 点击保存,然后运行测试,上传电影数据文件,然后输入分析数据的命令,进行执行.
    在这里插入图片描述

  3. 最终,执行的绘图结果。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零构建大语言模型全栈开发指南:第五部分:行业应用与前沿探索-5.1.2行业落地挑战:算力成本与数据隐私解决方案

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 从零构建大语言模型全栈开发指南-第五部分:行业应用与前沿探索5.1.2 行业落地挑战:算力成本与数据隐私解决方案1. 算力成本挑战与优化策略1.1 算力成本的核心问题1.2 算力优化技术方案2. 数据隐私挑战…

NodeJS--NPM介绍使用

1、使用npm install命令安装模块 1.1、本地安装 npm install express 1.2、全局安装 npm install express -g 1.3、本地安装和全局安装的区别

DeepSeek与ChatGPT的优势对比:选择合适的工具来提升工作效率

选DeepSeek还是ChatGPT?这就像问火锅和披萨哪个香! "到底该用DeepSeek还是ChatGPT?” 这个问题最近在互联网圈吵翻天!其实这就跟选手机系统-样,安卓党iOS党都能说出一万条理由,但真正重要的是你拿它来干啥!&am…

25大唐杯赛道一本科B组知识点大纲(下)

5G/6G网络技术知识点(10%) 工程概论及通信工程项目实践(20%) 5G垂直行业应用知识点(20%) ⭐⭐⭐为重点知识,尽量要过一遍哦 大唐杯赛道一国一备赛思路 大唐杯国一省赛回忆录--有付出就会有收…

Python+Playwright自动化测试-1-环境准备与搭建

1、Playwright 是什么? 微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简…

生产管理系统如何破解汽车零部件行业追溯难痛点

在汽车零部件制造行业中,生产追溯一直是企业面临的核心挑战之一。随着市场竞争的加剧和客户需求的日益复杂,如何确保产品质量、快速定位问题源头、减少批次性返工,成为了每个企业亟待解决的问题。而生产管理系统,作为智能制造的重…

【XTerminal】【树莓派】Linux系统下的函数调用编程

目录 一、XTerminal下的Linux系统调用编程 1.1理解进程和线程的概念并在Linux系统下完成相应操作 (1) 进程 (2)线程 (3) 进程 vs 线程 (4)Linux 下的实践操作 1.2Linux的“虚拟内存管理”和stm32正式物理内存(内存映射)的区别 (1)Linux虚拟内存管…

umi框架开发移动端h5

1、官网:https://umijs.org/ 2、创建出来的项目 yarn create umi yarn start3、推荐目录结构 . ├── config │ └── config.ts ├── public//静态资源 ├── dist ├── mock │ └── app.ts|tsx ├── src │ ├── .umi │ ├── .um…

3.9/Q2,Charls最新文章解读

文章题目:Association between remnant cholesterol and depression in middle-aged and older Chinese adults: a population-based cohort study DOI:10.3389/fendo.2025.1456370 中文标题:中国中老年人残留胆固醇与抑郁症的关系&#xff1…

Java Lambda 表达式提升效率

lambda 表达式的应用场景 Stream 的应用场景 Lambda/Stream 的进一步封装 自定义函数式接口(用 jdk 自带的函数式接口也可以) https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html import java.io.Serializable;/*** 可序…

人工智能混合编程实践:C++ ONNX进行图像超分重建

人工智能混合编程实践:C++ ONNX进行图像超分重建 前言相关介绍C++简介ONNX简介ONNX Runtime 简介**核心特点**图像超分辨率重建简介应用场景前提条件实验环境项目结构使用C++ ONNX进行图像超分重建sr_main.cpp参考文献前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多…

K8S学习之基础七十四:部署在线书店bookinfo

部署在线书店bookinfo 在线书店-bookinfo 该应用由四个单独的微服务构成,这个应用模仿在线书店的一个分类,显示一本书的信息,页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本…

Python不可变数据类型全解析:原理、优势与实战指南

目录 引言:为什么Python要区分可变与不可变? 一、不可变数据类型的核心特性 二、五大不可变数据类型深度解析 三、不可变数据类型的三大核心优势 四、不可变数据类型的典型应用场景 五、不可变 vs 可变:如何选择? 六、实战技…

Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座

在全球 290 位开发者的协作下,Apache Doris 在 2024 年完成了 7000 次代码提交,并发布了 22 个版本,实现在实时分析、湖仓一体和半结构化数据分析等核心场景的技术突破及创新。 2025 年,Apache Doris 社区将秉承“以场景驱动创新…

二极管正负极区分

二极管正负极区分 二极管是一种具有单向导电性的半导体器件,正确区分正负极对于其使用非常重要。以下是几种常见的二极管正负极区分方法: 1. 外观标识 有标记的二极管 色环或色点:许多二极管在表面会有一个色环或色点,这个标记…

【c++深入系列】:类与对象详解(中)

🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 不是因为看到希望才坚持,而是坚持了才能看到希望 那么上一篇博客我讲解了什么是类和对象以及类和对象是怎么定义的&#xff0…

汽车 HMI 设计的发展趋势与设计要点

一、汽车HMI设计的发展历程与现状 汽车人机交互界面(HMI)设计经历了从简单到复杂、从单一到多元的演变过程。2012年以前,汽车HMI主要依赖物理按键进行操作,交互方式较为单一。随着特斯拉Model S的推出,触控屏逐渐成为…

《AI大模型应知应会100篇》第56篇:LangChain快速入门与应用示例

第56篇:LangChain快速入门与应用示例 前言 最近最火的肯定非Manus和OpenManus莫属,因为与传统AI工具仅提供信息不同,Manus能完成端到端的任务闭环。例如用户发送“筛选本月抖音爆款视频”,它会自动完成: 爬取平台数据…

Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

哈希表系列一>两数之和

目录 题目:方法:暴力代码:优化后代码: 题目: 链接: link 方法: 暴力代码: public int[] twoSum(int[] nums, int target) {解法一:暴力解法:int n nums.length;for(int…