本文在洛杉矶云服务器上搭建

如果是大陆服务器, 可能会有拉取镜像失败等问题, 有两个解决方法:

  • 挂代理(谨慎行事)

  • 和我一样换非大陆云服务器一劳永逸


搭建

  • 服务器安装 Docker 等不再赘述

  • 连接服务器并创建一个新文件, 例如命名为 oneapi, cd 到其中

  • 运行命令

    docker run --name one-api -d --restart always -p 1111:3000 -e TZ=Asia/Shanghai -v ./data:/data justsong/one-api
    
    • 会使用本地 1111 端口(可自行修改)

    • 文件保存在当前目录的 data 目录下

  • 浏览器中输入 你的服务器 IP:1111 即可进入

  • 这里我是通过1panel配置了对应的域名与反代

配置

  • 首先是管理员登录

    初始账号用户名为 root,密码为 123456

    登录后请立即修改密码

  • 配置渠道

  • 渠道可以选deepseek , 免费送 500 万 token

https://www.deepseek.com/zh
  • 渠道里面可以获取到对应的apikey

  • 然后在one-api中进行渠道配置流程如下

  1. 添加令牌

  2. 点击令牌复制获取到 SK 和 代理地址

    1. 代理地址即为你的部署地址, 例如

      ⚠️ 后面的 /v1 有时候可以加, 有时候不用加. 默认加上, 不行就不加试试,这里我测试翻译插件里不用加/v1就可以

      • 服务器 IP:1111/v1

      • oneapi.你的域名/v1

  3. 可选使用沉浸式翻译进行验证

langchain.js 中配置

使用 deno

(deno 和 jupyter 的配置略)

同一目录下创建 .env deno.json a.ipynb 三个文件

.env文件如下

OPENAI_API_KEY=你的 oneapi 密钥

deno.json 文件如下

{
    "imports": {
      "lodash": "npm:/lodash@4.17.21",
      "dotenv": "https://deno.land/std@0.220.0/dotenv/mod.ts",
      "langchain": "npm:/langchain@0.1.28",
      "langchain/": "npm:/langchain@0.1.28/",
      "@langchain/openai": "npm:/@langchain/openai@0.0.22",
      "@langchain/openai/": "npm:/@langchain/openai@0.0.22/",
      "@langchain/core": "npm:/@langchain/core@0.1.48",
      "@langchain/core/": "npm:/@langchain/core@0.1.48/",
      "@langchain/community/": "npm:/@langchain/community/"
    },
    "deno.enable": true
  }

a.ipynb 文件如下

// 因为 langchain 是为 nodejs 设计,所以读取环境变量时会默认从 process.env 中进行读取,所以我一般会这样 hack 一下
import { load } from "dotenv";
const env = await load();

const process = {
    env
}
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage } from "@langchain/core/messages";


const chatModel = new ChatOpenAI({
    configuration: {
        baseURL: "https://oneapi.你的oneapi地址/v1"
    }
});

const res = await chatModel.invoke([
    new HumanMessage("Tell me a joke")
])

console.log(res)

点击 jupyter 的 Run All 下方应该有输出 注意这里有报错记得安装一下dotenv

yarn add dotenv
or
pnpm install dotenv

使用 nodejs

同一目录下创建 .env package.json a.js 三个文件

.env

OPENAI_API_KEY=你的 oneapi 密钥

package.json

{
  "name": "kailangchain",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "start": "node a.js"
  },
  "dependencies": {
    "@langchain/core": "^0.2.10",
    "@langchain/openai": "^0.0.28",
    "dotenv": "^16.4.5"
  }
}

a.js

import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage } from "@langchain/core/messages";
import "dotenv/config";

const model = new ChatOpenAI({
    configuration: {
        baseURL: "https://oneapi.你的 oneapi 地址/v1"
    }
});

const res = await model.invoke([
    new HumanMessage("Tell me a joke")
])

console.log(res);

终端运行 node a.js pnpm start

这里记得先pnpm i 一下

可以看到能拿到完美的结果了