【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,并在自己的项目中应用这一技术。

相关推荐
YSGZJJ1 小时前
股指期货的套保策略如何精准选择和规避风险?
人工智能·区块链
无脑敲代码,bug漫天飞1 小时前
COR 损失函数
人工智能·机器学习
HPC_fac130520678162 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
小陈phd4 小时前
OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
人工智能·opencv·计算机视觉
Guofu_Liao5 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
ZHOU_WUYI9 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1239 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
老艾的AI世界10 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
DK2215110 小时前
机器学习系列----关联分析
人工智能·机器学习
Robot25110 小时前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台