自学内容网 自学内容网

7. LangChain4j如何使用统一api调用?

前言

        当我们对接LangChain4j的时候,面对复杂的各种各样的大模型的api的对接,让很多开发者感到力不从心。在每个大模型的api都不一样的时候?该如何快捷的切换模型的使用呢?

        这时,One-API应运而生,它以其简洁,高效的特性,吸引了大量开发者的关注。那么,究竟什么是One-API?它有哪些应用场景?又该如何尝试呢?本文将为你一一解答。

One-API简介

        One-API,顾名思义,即“一个API”,它旨在通过统一的编程接口,让开发者能够更轻松地应对不同硬件平台上的编程挑战。One-API将多种编程语言、库和框架整合在一起,形成了一个强大的编程生态系统。在这个生态系统中,开发者只需掌握一套统一的API,就能在各种硬件平台上进行高效的开发。

官网:One-API官网

 

基于 Docker 进行部署

# 使用 SQLite 的部署命令:
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /usr/local/data/one-api:/data justsong/one-api

其中,-p 3000:3000 中的第一个 3000 是宿主机的端口,可以根据需要进行修改。

数据和日志将会保存在宿主机的 //usr/local/data/one-api 目录,请确保该目录存在且具有写入权限,或者更改为合适的目录。

如果启动失败,请添加 --privileged=true,具体参考 #482 。

如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 justsong/one-api 替换为 ghcr.io/songquanpeng/one-api 即可。如下

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /usr/local/data/one-api:/data ghcr.io/songquanpeng/one-api

     如果想学习docker国内拉不了镜像,该怎么办?可以看我这篇博客Docker无法拉取镜像!如何解决?-CSDN博客

启动完之后,访问:http://localhost:3000/   初始账号用户名为 root,密码为 123456

如何使用one-api?

登录完后,页面如下

 此时,我们需要配置渠道和令牌。

one-api支持的渠道如下:
  1. 支持多种大模型:
添加渠道

 添加令牌

 

使用方法

渠道页面中添加你的 API Key,之后在令牌页面中新增访问令牌。

之后就可以使用你的令牌访问 One API 了,使用方式与 OpenAI API 一致。

你需要在各种用到 OpenAI API 的地方设置 API Base 为你的 One API 的部署地址,例如:http://localhost:3000,API Key 则为你在 One API 中生成的令牌。

注意,具体的 API Base 的格式取决于你所使用的客户端。

例如对于 OpenAI 的官方库:

OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

可以通过在令牌后面添加渠道 ID 的方式指定使用哪一个渠道处理本次请求,例如:Authorization: Bearer ONE_API_KEY-CHANNEL_ID。 注意,需要是管理员用户创建的令牌才能指定渠道 ID。不加的话将会使用负载均衡的方式使用多个渠道。

案例实战

对接-月之暗面Ai

        以下的baseUrl使用的是我们one-api的访问地址,加上/v1,而apikey是在one-api中配置的月之暗面的令牌。modelName是其中的一个模型名称。

  ChatLanguageModel model = OpenAiChatModel.builder()
                .baseUrl("http://localhost:3000/v1")
                .apiKey("one-api月之暗面令牌")
                .modelName("moonshot-v1-8k")
                .build();
        String answer = model.generate("你好,你是谁?");
        System.out.println(answer);
对接-智普Ai

        当我们想切换其他的大模型的时候,只需要把apikey和modelName改一下就可以了。很容易的实现大模型的切换。

  ChatLanguageModel model = OpenAiChatModel.builder()
                .baseUrl("http://localhost:3000/v1")
                .apiKey("one-api智普令牌")
                .modelName("glm-4")
                .build();
        String answer = model.generate("你好,你是谁?");
        System.out.println(answer);


原文地址:https://blog.csdn.net/weixin_46203834/article/details/140591982

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!