ollama+qwen2.5-0.5b+oneAPI+m3e+fastgpt搭建本地私有AI大模型智能体工作流(AI Agent Flow)qwen2.5-0.5b 完整满血版

ollama

Ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新大语言模型,包括如Llama 3、Phi 3、Mistral、Gemma等开源的大型语言模型。

Ollama目前支持以下大语言模型:https://ollama.com/library

因此,Ollama与Llama的关系:Llama是大语言模型,而Ollama是大语言模型(不限于Llama模型)便捷的管理和运维工具

1、安装ollama

Ollama提供了MacOS、Linux和Windows操作系统的安装包,大家可根据自己的操作系统,下载安装即可:
在这里插入图片描述
安装前,提前配置环境变量,配置模型下载路径
在这里插入图片描述

2、下载模型

接下来是下载模型,这里通过一个小模型进行举例,让大家都可以在本地进行运行
在这里插入图片描述
我这里选择了qwen2.5-0.5b模型

https://ollama.com/library/qwen2.5-coder:0.5b
在这里插入图片描述
复制完成后进入cmd,并开始下载模型,将复制的模型 粘贴并回车。

在这里插入图片描述
上图为拉取进度,完成后会自动进行编译,然后本地cmd方式即可进行对话。

启动完毕,其实我们已经有了一个控制台聊天界面,可以通过控制台与qwen2.5-coder:0.5b聊天了

通过list命令进行查看

ollama list

如果我们不想要这个模型了,也可以通过命令行删除模型文件:

ollama rm qwen2.5-coder:0.5b

3、Ollama大模型 Web 可视化聊天界面(可选)

如果想通过ollama原生的ui进行使用,部署Ollama大模型 Web 可视化聊天界面

控制台聊天对话界面体验总归是不太好,接下来部署 Web 可视化聊天界面。

首先,下载ollama-webuiWeb 工程代码:

git clone https://github.com/ollama-webui/ollama-webui-lite

然后切换ollama-webui代码的目录:

cd ollama-webui-lite

设置 Node.js 工具包镜像源,以接下来下载 Node.js 的依赖包更加快速:

npm config set registry http://mirrors.cloud.tencent.com/npm/

安装 Node.js 依赖的工具包:

npm install

最后,启动 Web 可视化界面:

npm run dev

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

4、ollama API

Ollama API结果返回

curl http://localhost:11434/api/generate -d '{
  "model": "Llama-3-8B",
  "prompt":"为什么天空是蓝色的?"
}'

Ollama API聊天对话

curl http://localhost:11434/api/generate -d '{
  "model": "Llama-3-8B",
  "prompt":"为什么天空是蓝色的?"
}'

经过以上步骤本地大模型以安装完成,接下来我们通过dockerdesktop进行搭建fastgpt。

ollama docker版

Docker安装Ollama

Ollama现在已经支持Docker安装,极大的简化了服务器用户部署难度,这里我们使用docker compose工具来运行Ollama,先新建一个docker-compose.yaml,内容如下:
在这里插入图片描述
然后输入命令docker compose up -d或者docker-compose up -d运行,运行后访问:http://IP:11434,看到提示Ollama is running就说明成功了,如下图:
在这里插入图片描述
使用Ollama部署大模型
Ollama安装完毕后,还需要继续下载大模型,支持的大模型可以在Ollama官网找到:https://ollama.com/library。Ollama默认没有提供WEB界面,需要通过命令行来使用,先输入命令进入容器:

docker exec -it ollama /bin/bash

进入容器后,去上面官网找到你想要下载的大模型,比如我们下载一个阿里千问2的模型,命令如下:

ollama run qwen2

模型下载并运行完毕后可以通过命令行方式进行对话,如下图:
在这里插入图片描述

m3e

嵌入模型介绍

什么是嵌入(Embedding)

一句话介绍:嵌入是一种将单词、短语或整个文档转换为密集向量的技术。每个单词或短语被转换成一组数字,这组数字捕捉了该文本的某些语义特征。

为什么需要嵌入模型

计算机本身并不理解文字或语言。嵌入模型通过将文本转换为计算机可以处理的数值形式(即向量),使得计算机能够理解和处理自然语言。

嵌入模型的应用

  • 搜索(根据与查询字符串的相关性对结果进行排序)
  • 聚类(根据相似性对文本字符串进行分组)
  • 推荐(建议使用具有相关文本字符串的项)
  • 异常检测(识别出几乎没有相关性的异常值)
  • 多样性度量(分析相似性分布)
  • 分类(文本字符串按其最相似的标签进行分类)

常见的嵌入模型

  • Word2Vec:通过上下文来理解单词的含义。
  • GloVe(Global Vectors for Word Representation):基于整个语料库的统计数据来生成单词嵌入。
  • BERT(Bidirectional Encoder Representations from Transformers):更先进的模型,能够理解上下文中单词的双向关系。
  • OpenAI text-embedding-ada-002:OpenAI文本嵌入模型
  • M3E:Moka Massive Mixed Embedding,也是我们今天要介绍的模型
  • 其它:后续模型选型会介绍到

什么是M3E

M3E 是 Moka Massive Mixed Embedding 的缩写

  • Moka,此模型由 MokaAI 训练,开源和评测,训练脚本使用 uniem ,评测 BenchMark 使用 MTEB-zh
  • Massive,此模型通过千万级 (2200w+) 的中文句对数据集进行训练
  • Mixed,此模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索
  • Embedding,此模型是文本嵌入模型,可以将自然语言转换成稠密的向量

m3e在本文中也可以理解为和ollama相类似的一种模型,只不过是专用于索引的嵌入模型,本文中为了保持一致,m3e采用docker方式进行部署

  m3e:
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
    container_name: m3e-large-api
    networks:
      - fastgpt
    ports:
      - 6008:6008
    # volumes:
    #   - ./ollama/data:/root/.ollama
    restart: no

one-API介绍

OneAPI 是一个 API 管理和分发系统,支持几乎所有主流 API 服务。OneAPI 通过简单的配置允许使用一个 API 密钥调用不同的服务,实现服务的高效管理和分发。

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.

官方提供了一键部署的 docker-compose 方案,部署完成后,访问 http://localhost:3000/ 并使用初始账号(用户名为 root,密码为 123456)登录,登录后根据提示修改密码。

Fastgpt

1、部署fastgpt到dockerdesktop

Fastgpt开源项目地址:https://github.com/labring/FastGPT

https://doc.fastgpt.cn/docs/development/docker/

官方步骤已经写的非常详细,这里主要贴一下最关键的两个文件
在这里插入图片描述
docker-compose.yml

# 数据库的默认账号和密码仅首次运行时设置有效
# 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~
# 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。
# 如何无法访问 dockerhub 和 git,可以用阿里云(阿里云没有arm包)

version: '3.3'
services:
  # db
  pg:
    # image: pgvector/pgvector:0.7.0-pg15 # docker hub
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  ollama:
    # build:
    #   context: ./ollama
    #   dockerfile: Dockerfile
    image: docker.unsee.tech/ollama/ollama
    container_name: ollama
    networks:
      - fastgpt
    ports:
      - 11434:11434
    volumes:
      - ./ollama/data:/root/.ollama
    restart: no
  m3e:
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
    container_name: m3e-large-api
    networks:
      - fastgpt
    ports:
      - 6008:6008
    # volumes:
    #   - ./ollama/data:/root/.ollama
    restart: no
  mongo:
    # image: mongo:5.0.18 # dockerhub
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    # image: mongo:4.4.29 # cpu不支持AVX时候使用
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      - MONGO_INITDB_ROOT_USERNAME=myusername
      - MONGO_INITDB_ROOT_PASSWORD=mypassword
    volumes:
      - ./mongo/data:/data/db
    entrypoint:
      - bash
      - -c
      - |
        openssl rand -base64 128 > /data/mongodb.key
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        echo 'const isInited = rs.status().ok === 1
        if(!isInited){
          rs.initiate({
              _id: "rs0",
              members: [
                  { _id: 0, host: "mongo:27017" }
              ]
          })
        }' > /data/initReplicaSet.js
        # 启动MongoDB服务
        exec docker-entrypoint.sh "$$@" &

        # 等待MongoDB服务启动
        until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; do
          echo "Waiting for MongoDB to start..."
          sleep 2
        done

        # 执行初始化副本集的脚本
        mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js

        # 等待docker-entrypoint.sh脚本执行的MongoDB服务进程
        wait $$!

  # fastgpt
  sandbox:
    container_name: sandbox
    # image: ghcr.io/labring/fastgpt-sandbox:v4.8.11 # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.8.11 # 阿里云
    networks:
      - fastgpt
    restart: always
  fastgpt:
    container_name: fastgpt
    # image: ghcr.io/labring/fastgpt:v4.8.11 # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.11 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
      - sandbox
    restart: always
    environment:
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI模型的API地址哦。务必加 /v1。这里默认填写了OneApi的访问地址。
      - OPENAI_BASE_URL=http://oneapi:3000/v1
      # AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
      - CHAT_API_KEY=sk-AAK
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名myusername,密码mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # pg 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
      # sandbox 地址
      - SANDBOX_URL=http://sandbox:3000
      # 前端地址: http://localhost:3000
      - FE_DOMAIN=
      # 日志等级: debug, info, warn, error
      - LOG_LEVEL=info
      - STORE_LOG_LEVEL=warn
    volumes:
      - ./config.json:/app/data/config.json

  # oneapi
  mysql:
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 # 阿里云
    # image: docker.unsee.tech/mysql:8.0.37
    # image: mysql:8.0.28
    container_name: mysql
    restart: always
    ports:
      - 3306:3306
    networks:
      - fastgpt
    command: --default-authentication-plugin=mysql_native_password
    environment:
      # 默认root密码,仅首次运行有效
      MYSQL_ROOT_PASSWORD: oneapimmysql
      MYSQL_DATABASE: oneapi
    volumes:
      - ./mysql:/var/lib/mysql
  oneapi:
    container_name: oneapi
    # image: ghcr.io/songquanpeng/one-api:v0.6.7
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 # 阿里云
    ports:
      - 3001:3000
    depends_on:
      - mysql
    networks:
      - fastgpt
    restart: always
    environment:
      # mysql 连接参数
      - SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi
      # 登录凭证加密密钥
      - SESSION_SECRET=oneapikey
      # 内存缓存
      - MEMORY_CACHE_ENABLED=true
      # 启动聚合更新,减少数据交互频率
      - BATCH_UPDATE_ENABLED=true
      # 聚合更新时长
      - BATCH_UPDATE_INTERVAL=10
      # 初始化的 root 密钥(建议部署完后更改,否则容易泄露)
      - INITIAL_ROOT_TOKEN=fastgpt
    volumes:
      - ./oneapi:/data
networks:
  fastgpt:

fastgpt config.json

// 已使用 json5 进行解析,会自动去掉注释,无需手动去除
{
  "feConfigs": {
    "lafEnv": "https://laf.dev" // laf环境。 https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf 。
  },
  "systemEnv": {
    "vectorMaxProcess": 15, // 向量处理线程数量
    "qaMaxProcess": 15, // 问答拆分线程数量
    "tokenWorkers": 50, // Token 计算线程保持数,会持续占用内存,不能设置太大。
    "pgHNSWEfSearch": 100 // 向量搜索参数。越大,搜索越精确,但是速度越慢。设置为100,有99%+精度。
  },
  "llmModels": [
    {
      "model": "qwen2.5-coder:0.5b", // 模型名(对应OneAPI中渠道的模型名)
      "name": "qwen2.5-coder:0.5b",  // 模型别名
      "avatar": "/imgs/model/qwen.svg", // 模型的logo
      "maxContext": 800, // 最大上下文
      "maxResponse": 16000,  // 最大回复
      "quoteMaxToken": 120000,// 最大引用内容
      "maxTemperature": 1.2, // 最大温度
      "charsPointsPrice": 0, 
      "charsPointsPrice": 0, // n积分/1k token(商业版)
      "censor": false, // 是否开启敏感校验(商业版)
      "vision": true, // 是否支持图片输入
      "datasetProcess": true, // 是否设置为文本理解模型(QA),务必保证至少有一个为true,否则知识库会报错
      "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)
      "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)
      "usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)
      "usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)
      "toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。)
      "functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)
      "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
      "customExtractPrompt": "", // 自定义内容提取提示词
      "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
      "defaultConfig": {}, // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
      "fieldMap": {} // 字段映射(o1 模型需要把 max_tokens 映射为 max_completion_tokens)
    },
    {
      "model": "qwen2.5:1.5b", 
      "name": "qwen2.5:1.5b", 
      "avatar": "/imgs/model/qwen.svg",
      "maxContext": 800, 
      "maxResponse": 16000, 
      "quoteMaxToken": 120000,
      "maxTemperature": 1.2, 
      "charsPointsPrice": 0, 
      "censor": false, 
      "vision": true, 
      "datasetProcess": true, 
      "usedInClassify": true, 
      "usedInExtractFields": true, 
      "usedInToolCall": true, 
      "usedInQueryExtension": true, 
      "toolChoice": true, 
      "functionCall": false, 
      "customCQPrompt": "", 
      "customExtractPrompt": "", 
      "defaultSystemChatPrompt": "", 
      "defaultConfig": {}, 
      "fieldMap": {}
    },
    {
      "model": "gpt-4o-mini", // 模型名(对应OneAPI中渠道的模型名)
      "name": "gpt-4o-mini", // 模型别名
      "avatar": "/imgs/model/openai.svg", // 模型的logo
      "maxContext": 125000, // 最大上下文
      "maxResponse": 16000, // 最大回复
      "quoteMaxToken": 120000, // 最大引用内容
      "maxTemperature": 1.2, // 最大温度
      "charsPointsPrice": 0, // n积分/1k token(商业版)
      "censor": false, // 是否开启敏感校验(商业版)
      "vision": true, // 是否支持图片输入
      "datasetProcess": true, // 是否设置为文本理解模型(QA),务必保证至少有一个为true,否则知识库会报错
      "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)
      "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)
      "usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)
      "usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)
      "toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。)
      "functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)
      "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
      "customExtractPrompt": "", // 自定义内容提取提示词
      "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
      "defaultConfig": {}, // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
      "fieldMap": {} // 字段映射(o1 模型需要把 max_tokens 映射为 max_completion_tokens)
    },
    {
      "model": "gpt-4o",
      "name": "gpt-4o",
      "avatar": "/imgs/model/openai.svg",
      "maxContext": 125000,
      "maxResponse": 4000,
      "quoteMaxToken": 120000,
      "maxTemperature": 1.2,
      "charsPointsPrice": 0,
      "censor": false,
      "vision": true,
      "datasetProcess": true,
      "usedInClassify": true,
      "usedInExtractFields": true,
      "usedInToolCall": true,
      "usedInQueryExtension": true,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {},
      "fieldMap": {}
    },
    {
      "model": "o1-mini",
      "name": "o1-mini",
      "avatar": "/imgs/model/openai.svg",
      "maxContext": 125000,
      "maxResponse": 65000,
      "quoteMaxToken": 120000,
      "maxTemperature": 1.2,
      "charsPointsPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": true,
      "usedInClassify": true,
      "usedInExtractFields": true,
      "usedInToolCall": true,
      "usedInQueryExtension": true,
      "toolChoice": false,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {
        "temperature": 1
      }
    },
    {
      "model": "o1-preview",
      "name": "o1-preview",
      "avatar": "/imgs/model/openai.svg",
      "maxContext": 125000,
      "maxResponse": 32000,
      "quoteMaxToken": 120000,
      "maxTemperature": 1.2,
      "charsPointsPrice": 0,
      "censor": false,
      "vision": false,
      "datasetProcess": true,
      "usedInClassify": true,
      "usedInExtractFields": true,
      "usedInToolCall": true,
      "usedInQueryExtension": true,
      "toolChoice": false,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {
        "temperature": 1
      }
    }
  ],
  "vectorModels": [
    {
      "model": "text-embedding-ada-002", // 模型名(与OneAPI对应)
      "name": "Embedding-2", // 模型展示名
      "avatar": "/imgs/model/openai.svg", // logo
      "charsPointsPrice": 0, // n积分/1k token
      "defaultToken": 700, // 默认文本分割时候的 token
      "maxToken": 3000, // 最大 token
      "weight": 100, // 优先训练权重
      "defaultConfig": {}, // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度)
      "dbConfig": {}, // 存储时的额外参数(非对称向量模型时候需要用到)
      "queryConfig": {} // 参训时的额外参数
    },
    {
      "model": "text-embedding-3-large",
      "name": "text-embedding-3-large",
      "avatar": "/imgs/model/openai.svg",
      "charsPointsPrice": 0,
      "defaultToken": 512,
      "maxToken": 3000,
      "weight": 100,
      "defaultConfig": {
        "dimensions": 1024
      }
    },
    {
      "model": "text-embedding-3-small",
      "name": "text-embedding-3-small",
      "avatar": "/imgs/model/openai.svg",
      "charsPointsPrice": 0,
      "defaultToken": 512,
      "maxToken": 3000,
      "weight": 100
    }
  ],
  "reRankModels": [],
  "audioSpeechModels": [
    {
      "model": "tts-1",
      "name": "OpenAI TTS1",
      "charsPointsPrice": 0,
      "voices": [
        { "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" },
        { "label": "Echo", "value": "echo", "bufferId": "openai-Echo" },
        { "label": "Fable", "value": "fable", "bufferId": "openai-Fable" },
        { "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" },
        { "label": "Nova", "value": "nova", "bufferId": "openai-Nova" },
        { "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" }
      ]
    }
  ],
  "whisperModel": {
    "model": "whisper-1",
    "name": "Whisper1",
    "charsPointsPrice": 0
  }
}

2、启动并配置one api模型

访问本地部署好的one api:http://localhost:3001/channel

初始化的 用户名:root 密码:123456
在这里插入图片描述
进入后会叫修改密码之类的,完成后点击“渠道”,配置你的大语言模型。首次登录进来渠道是空的,需要自己添加自己的大模型。
在这里插入图片描述

第一步:先点击 底部“添加新的渠道”,然后选择“Ollama”。
在这里插入图片描述

第二步:配置本地qwen2.5-coder:0.5b 大模型

查询本地ollama中的模型名称,填入模型的时候用
在这里插入图片描述

在这里插入图片描述

特别注意,代理地址填写本机IP、localhost、127.0.0.1会失败,使用docker host的方式

http://host.docker.internal:11434

在这里插入图片描述
完成后测试通过,下图中有时间返回,就说明模型链接成功。
在这里插入图片描述
oneapi还有最后一步,就是将模型加入到咱们的令牌中,点击顶部“令牌”导航进入。

新建令牌信息,并添加qwen2.5-coder:0.5b模型。
在这里插入图片描述

3、配置fastgpt的模型(已完成)

进入最开始的fastgpt文件夹。找到config.json,配置llama3模型,位置和代码如下:

完成配置后需要重新启动dockerdesktop里面的oneapi和fastgpt。

最核心的一个地方就是模型名对应OneAPI中渠道的模型名

"model": "qwen2.5-coder:0.5b", // 模型名(对应OneAPI中渠道的模型名)

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

4、访问fastgpt

地址:http://localhost:3000/login,默认用户名:root 密码:1234
在这里插入图片描述
5、配置应用chat、agent等
在这里插入图片描述
输入chat名字,选择类型。
在这里插入图片描述
选择一个大模型,配置到你创建的应用中。
在这里插入图片描述
完成模型选择后进行 发布,发布后即可在右变边的聊天框中输入信息,进行对话。
在这里插入图片描述

### 关于Qwen2.5-0.5B API文档和使用说明 对于较小规模的模型如Qwen2.5-0.5B,在API调用方面通常会提供简化的服务接口以便快速集成到各种应用场景中。尽管具体针对此本的官方API文档可能未被直接提及,可以推测其设计遵循了系列内其他成员的一致性原则。 #### 接口初始化与配置 为了启动并配置Qwen2.5-0.5B模型服务,一般需要指定必要的环境变量以及加载预训练权重文件。这可以通过Python客户端库完成,其中包含了便捷的方法来处理常见的初始化任务: ```python from qwen_0_5b import QwenModel, get_tokenizer model_path = "./path_to_model_weights" tokenizer = get_tokenizer(model_name="qwen-0.5b") model = QwenModel.from_pretrained(pretrained_model_name_or_path=model_path) # 设置设备(CPU/GPU) device = "cuda" if torch.cuda.is_available() else "cpu" model.to(device) ``` #### 发送请求与接收响应 一旦完成了上述准备工作,则可通过定义好的函数发送查询请求给已部署的服务端点,并获取相应的回复内容。这里假设存在一个`generate()`方法用于执行推理操作: ```python def generate_text(prompt: str) -> dict: inputs = tokenizer(prompt, return_tensors="pt").to(device) outputs = model.generate(**inputs) result = tokenizer.decode(outputs[0], skip_special_tokens=True) return {"response": result} ``` 通过这种方式,开发者能够轻松地将Qwen2.5-0.5B嵌入至应用程序之中,从而实现实时的语言理解和生成能力[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值