【AI开源项目】OneAPI -核心概念、特性、优缺点以及如何在本地和服务器上进行部署!

本文将深入探讨OneAPI的核心概念、特性以及如何在本地和服务器上进行部署,帮助开发者更高效地利用这一强大的工具。

什么是OneAPI?

OneAPI是一个统一的、开放的、标准化的编程环境,旨在为开发者提供一个简化的方式来编写并行代码,支持CPU、GPU、FPGA等不同类型的处理器。通过OneAPI,开发人员可以使用相同的代码库来针对不同的硬件进行优化,从而实现更高的性能和更好的可移植性。

  1. 集成OpenAI模型

    • 使用API调用来集成OpenAI的模型,如GPT-3.5-turbo和GPT-4。
    • 通过OneAPI的异构计算能力,优化这些模型的运行效率。
  2. 集成Azure模型

    • 利用Azure的API接口,调用其提供的AI模型。
    • 使用OneAPI的工具进行性能调优。
  3. 国内模型集成

    • 选择合适的国内AI模型,确保其API接口的兼容性。
    • 通过OneAPI实现跨平台的高效运行。
  4. 图像生成接口

    • 利用OpenAI的图像生成API,结合OneAPI的并行计算能力,提升图像生成速度和质量。
  5. 联网知识库集成

    • 通过API连接到联网知识库,获取实时数据。
    • 使用OneAPI的并行处理能力,快速处理和分析数据。

通过这些步骤,你可以构建一个强大的系统,利用OneAPI的优势,实现多种AI模型和服务的高效集成和优化。

OneAPI的核心特性

  1. 开放性:OneAPI支持多种类型的架构和不同的硬件供应商,使得开发者可以自由选择最佳硬件进行加速计算,而不必被某些厂商专有的硬件所限制。

  2. 统一编程模型:OneAPI提供了直接编程(Direct Programming)和基于库的编程(API-Based Programming)两种编程模型。直接编程使用统一的编程语言SYCL,它是基于C++标准的编程语言。

  3. 高效的性能:通过OneAPI,开发者可以更高效地利用硬件加速设备,从而获得与硬件加速设备相匹配的性能。

OneAPI的优势与缺点

优势:就是你可以通过OneAPI,自己本地部署一套API管理工具。让你所有的AI模型集成到OneAPI。

缺点:过于繁琐,因为有些用户是想直接用。所以直接部署一套成本也是很大的。不过你也可以参考一些其他的,比如现成的国产AI集成平台。这些是不用部署的。

例如 : 国内一站式大模型AI工具传送门:www.nyai.chat/chat?invite...

OneAPI的安装与使用教程

1. OneAPI的本地构建

要在本地构建OneAPI,您需要从GitHub上下载源代码并进行编译。以下是详细步骤:

1.1 下载源代码

bash 复制代码
git clone https://github.com/songquanpeng/one-api.git

1.2 构建前端

bash 复制代码
cd one-api/web/default
npm install
npm run build

1.3 构建后端

bash 复制代码
cd ..
go mod download
go build -ldflags "-s -w" -o one-api

1.4 运行OneAPI

bash 复制代码
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

1.5 访问OneAPI

在浏览器中访问 http://localhost:3000/ 并使用初始账号登录,用户名为 root,密码为 123456

2. 安装Go语言

OneAPI的后端使用Go语言开发,因此您需要先安装Go。以下是不同操作系统的安装步骤:

2.1 Windows安装

  1. 下载Go的MSI安装程序,选择适合您系统架构的版本(32位或64位):Go下载
  2. 运行MSI安装程序并按照提示进行安装。
  3. 配置环境变量,将Go的安装路径添加到系统的PATH环境变量中,通常默认安装路径是 C:\Go
  4. 打开命令提示符(Command Prompt)或PowerShell,运行以下命令验证安装是否成功:
bash 复制代码
go version

2.2 Mac安装

  1. 下载Go的PKG安装程序,选择适合您系统架构的版本(32位或64位):Go下载
  2. 运行PKG安装程序并按照提示进行安装。
  3. 配置环境变量,将以下内容添加到您的 ~/.bash_profile~/.zshrc 文件中:
bash 复制代码
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
  1. 运行以下命令使更改生效:
bash 复制代码
source ~/.bash_profile

bash 复制代码
source ~/.zshrc
  1. 打开命令提示符(Command Prompt)或PowerShell,运行以下命令验证安装是否成功:
bash 复制代码
go version

3. 服务器部署

在服务器上部署OneAPI的步骤如下:

3.1 本地进入one-api项目

在Dockerfile文件所在的根目录构建镜像包:

bash 复制代码
docker build -f Dockerfile -t one-api .

3.2 将镜像包转换成tar归档文件

bash 复制代码
docker save one-api > one-api.tar

3.3 上传docker-compose.yml文件

将本地根目录下的docker-compose.yml(环境变量)文件上传到服务器项目的根目录下。

3.4 服务器操作

进入到镜像包所在目录,加载导入镜像:

bash 复制代码
cd /data/project/one-api/
docker load -i one-api.tar

启动容器:

bash 复制代码
docker start 【container name | container id】

4. 本地Docker部署

使用SQLite的部署命令:

bash 复制代码
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

使用MySQL的部署命令:

bash 复制代码
docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

5. 环境变量配置

在使用OneAPI时,您可能需要配置一些环境变量以满足特定需求。以下是一些常用的环境变量及其说明:

  • REDIS_CONN_STRING:设置Redis作为缓存使用。
  • SESSION_SECRET:设置固定的会话密钥。
  • SQL_DSN:指定使用的数据库。

其他方法

你也可以用Python + OpenAI api Key的方式去实现一套自己的api管理方法。

OpenAI api Key的获取

如果您还没有OpenAI的API Key,可以按照以下步骤获取:

【OpenAI】第一节(OpenAI API)获取OpenAI API KEY的两种方式,开发者必看全方面教程!

Python代码调用OpenAi

bash 复制代码
from openai import OpenAI

# 创建OpenAI客户端
client = OpenAI(
    api_key="your_api_key",  # 你自己创建创建的Key
    base_url="your_base_url"  # 你的base_url
)

def api(content):
    print()
    
    # 这里是系统提示词
    sysContent = f"请对下面的内容进行分类,并且描述出对应分类的理由。你只需要根据用户的内容输出下面几种类型:bug类型,用户体验问题,用户吐槽." \
                 f"输出格式:[类型]-[问题:{content}]-[分析的理由]"
    response = client.chat.completions.create(
        messages=[
            # 把系统提示词传进来sysContent
            {'role': 'system', 'content': sysContent},
            # 把用户提示词传进来content
            {'role': 'user', 'content': content},
        ],
        # 这是模型
        model='gpt-4',
        stream=True
    )

    for chunk in response:
        print(chunk.choices[0].delta.content, end="", flush=True)


if __name__ == '__main__':
    content = "这个页面不太好看"
    api(content)

结论

OneAPI作为一个强大的编程模型和工具集合,为开发者提供了一个统一的、开放的编程环境,使得跨多种处理器架构的软件开发变得更加简单和高效。通过本文的介绍和教程,您应该能够快速上手OneAPI,并在自己的项目中应用这一技术。

相关推荐
scan72416 分钟前
LILAC采样算法
人工智能·算法·机器学习
leaf_leaves_leaf19 分钟前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零124 分钟前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
爱喝热水的呀哈喽39 分钟前
《机器学习》支持向量机
人工智能·决策树·机器学习
minstbe43 分钟前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机
月眠老师1 小时前
AI在生活各处的利与弊
人工智能
四口鲸鱼爱吃盐1 小时前
Pytorch | 从零构建MobileNet对CIFAR10进行分类
人工智能·pytorch·分类
苏言の狗1 小时前
Pytorch中关于Tensor的操作
人工智能·pytorch·python·深度学习·机器学习
pubuzhixing2 小时前
开源白板新方案:Plait 同时支持 Angular 和 React 啦!
前端·开源·github
bastgia2 小时前
Tokenformer: 下一代Transformer架构
人工智能·机器学习·llm