当前位置: 首页 > news >正文

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. 支持多种大模型:
    •  OpenAI ChatGPT 系列模型(支持 Azure OpenAI API)
    •  Anthropic Claude 系列模型 (支持 AWS Claude)
    •  Google PaLM2/Gemini 系列模型
    •  Mistral 系列模型
    •  字节跳动豆包大模型
    •  百度文心一言系列模型
    •  阿里通义千问系列模型
    •  讯飞星火认知大模型
    •  智谱 ChatGLM 系列模型
    •  360 智脑
    •  腾讯混元大模型
    •  Moonshot AI
    •  百川大模型
    •  MINIMAX
    •  Groq
    •  Ollama
    •  零一万物
    •  阶跃星辰
    •  Coze
    •  Cohere
    •  DeepSeek
    •  Cloudflare Workers AI
    •  DeepL
    •  together.ai
    •  novita.ai
添加渠道

 添加令牌

 

使用方法

渠道页面中添加你的 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);

相关文章:

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

前言 当我们对接LangChain4j的时候&#xff0c;面对复杂的各种各样的大模型的api的对接&#xff0c;让很多开发者感到力不从心。在每个大模型的api都不一样的时候&#xff1f;该如何快捷的切换模型的使用呢&#xff1f; 这时&#xff0c;One-API应运而生&#xff0c;它以其简洁…...

RPM、YUM 安装 xtrabackup 8 (mysql 热备系列一)包含rpm安装 mysql 8 配置主从

RPM安装 percona-xtrabackup-80-8.0.35-30.1.el7.x86_64.rpm 官网&#xff1a; https://www.percona.com/ 下载地址&#xff1a; https://www.percona.com/downloads wget https://downloads.percona.com/downloads/percona-distribution-mysql-ps/percona-distribution-mysq…...

maven项目打成可运行的jar及pom中的依赖一同打包

maven项目打jar及pom中的依赖一同打包 最近开发中有个需求&#xff0c;不部署新的服务&#xff0c;只jar包执行 那maven项目中&#xff0c;代码如何以jar的方式运行、如何把代码打成jar、pom中的依赖如何与代码一同打到jar包中&#xff1f; 1、代码如何以jar的方式运行&…...

Gettler‘s Screep World 笔记 Ⅰ

夏促时候刚刚入坑&#xff0c;写个笔记叭~ 环境配置 参考 HoPGoldy 大佬的简书&#xff0c;先配置下开发环境 萌新去看大佬的详细教程&#xff0c;我这里比较简单&#xff0c;有前端基础的可以直接抄 VSCode 跳过 node 我配的是v18.18.2 换源 npm config set registry h…...

联合体(union)的定义以及如何与结构体(struct)不同

联合体&#xff08;Union&#xff09;是一种特殊的数据类型&#xff0c;它允许在相同的内存位置存储不同的数据类型。但是&#xff0c;在任何给定的时间点&#xff0c;联合体只能存储其中的一个值&#xff1b;这意味着联合体的大小是其最大成员的大小&#xff0c;因为它必须足够…...

【Spark官方文档部分翻译】RDD编程指南(RDD Programming Guide)

写在前面 内容如何选择 本翻译只翻译本人认为精华的部分&#xff0c;本人认为的Spark的一些核心理念&#xff0c;编程思想。一些特别基础的操作包括但不限于搭建环境就不在此赘述了。 配套版本 本系列基于Spark 3.3.1&#xff0c;Scala 2.12.10&#xff0c;进行翻译总结 原…...

前端八股文 $set

为什么会有$set vue2中对数组中新增的属性是监听不到的 如图 vue 插件中有但是 视图中没有刷新 解决方法 解决就是 $set() 就是在数组中新增属性的时候可以重新渲染视图 具体的写法 写法 就是 第一个 是在那个对象上新增 第二个参数 是新增的属性 第三个参数是 新增的属性…...

Connecting weaviate with langflow across docker containers

题意&#xff1a;在Docker容器之间连接Weaviate与Langflow 问题背景&#xff1a; I am trying to build a local RAG application using Langflow. For my vectore store, I want to use a local Weaviate instance, hosted in a separate docker container on the same netwo…...

【linux vim使用说明】

基本概念 提示&#xff1a;本文是网络资源整理 模式: vim 有多种模式&#xff0c;每种模式都有不同的功能。 普通模式 (Normal Mode): 默认模式&#xff0c;用于导航和执行命令。插入模式 (Insert Mode): 用于文本输入。可以通过按 i 进入。可视模式 (Visual Mode): 用于选择…...

cocos2d-x安装和项目

首先多方查找资料发现教程很简洁&#xff0c;发现对自己的操作方面没多大帮助&#xff0c;后来干脆去官网&#xff0c;好像也很简洁。基于这样一个原因&#xff0c;加上我首次碰cocos2d-x&#xff0c;决定记录一下整个流程&#xff0c;解决实际操作上的疑惑。 涉及的方面&…...

因果推断 | 双重机器学习(DML)算法原理和实例应用

文章目录 1 引言2 DML算法原理2.1 问题阐述2.2 DML算法 3 DML代码实现3.1 策略变量为0/1变量3.2 策略变量为连续变量 4 总结5 相关阅读 1 引言 小伙伴们&#xff0c;好久不见呀。 距离上次更新已经过去了一个半月&#xff0c;上次发文章时还信誓旦旦地表达自己后续目标是3周更…...

Flutter 开源库学习

网上看了好多歌词实现逻辑相关资料&#xff0c;封装比较的好的 就 flutter_lyric&#xff0c;核心类是LyricsReader&#xff0c;而且如果实现逐字逐句歌词编辑功能还需要自己实现很多细节 &#xff0c;网友原话是 &#xff1a;歌词的功能真的是不少&#xff0c;写起来也是挺难的…...

自主巡航,目标射击

中国机器人及人工智能大赛 参赛经验&#xff1a; 自主巡航赛道 【机器人和人工智能——自主巡航赛项】动手实践篇-CSDN博客 主要逻辑代码 #!/usr/bin/env python #coding: utf-8import rospy from geometry_msgs.msg import Point import threading import actionlib impor…...

MySQL中EXPLAIN关键字详解

昨天领导突然问到&#xff0c;MySQL中explain获取到的type字段中index和ref的区别是什么。 这两种状态都是在使用索引后产生的&#xff0c;但具体区别却了解不多&#xff0c;只知道ref相比于index效率更高。 因此&#xff0c;本文较为详细地记录了MySQL性能中返回字段的含义、状…...

如何理解ref toRef和toRefs

是什么 ref 生成值类型的响应式数据可用于模板和reactive通过.value修改值 ref也可以像vue2中的ref那样使用 toRef 针对一个响应式对象&#xff08;reactive&#xff09;的prop创建一个ref两者保持引用关系 toRefs 将响应式对象&#xff08;reactive封装&#xff09;转换…...

【linux】kernel-trace

文章目录 linux kernel trace配置trace内核配置trace接口使用通用配置Events配置Function配置Function graph配置Stack trace设置 跟踪器tracer功能描述 使用示例1.irqsoff2.preemptoff3.preemptirqsoff linux kernel trace 配置 源码路径&#xff1a; kernel/trace trace内…...

【Golang 面试基础题】每日 5 题(一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…...

ETCD介绍以及Go语言中使用ETCD详解

ETCD介绍以及Go语言中使用ETCD详解 什么是etcd ETCD是一个分布式、可靠的key-value存储的分布式系统,用于存储分布式系统中的关键数据;当然,它不仅仅用于存储,还提供配置共享及服务发现;基于Go语言实现 。 etcd的特点 完全复制:集群中的每个节点都可以使用完整的存档高…...

03-用户画像+Elasticsearch

优点 es支持海量数据的写入和更新es可以和hadoop&#xff0c;hive及spark进行集成es支持hivesql的操作&#xff0c;可以通过hivesql将数据导入eses的在进行数据检索查询是速度比较快es是分布式存储 应用 全文检索 全文检索流程: 1-对文档数据(文本数据)进行分词 2-将分词…...

初学Mybatis之搭建项目环境

在连接 mysql 数据库时&#xff0c;遇到了个 bug&#xff0c;之前都能连上&#xff0c;但报错说换了个 OS 操作系统什么的 然后搜索怎么连接&#xff0c;找到了解决方法 MySQL MYSQL – 无法连接到本地MYSQL服务器 (10061)|极客教程 (geek-docs.com) 命令行输入 services.msc…...

JMeter使用小功能-(持续更新)

1、jmeter在同一个线程组内&#xff0c;uuid的复用 方式一&#xff1a; 方式二&#xff1a; 2、获得jMeter使用的线程总数 ctx.getThreadGroup().getNumberOfThreads()来表示活动线程总数 int threadNumctx.getThreadGroup().getNumThreads(); String threads Integer…...

科研绘图系列:R语言火山图(volcano plot)

介绍 火山图(Volcano Plot),也称为火山图分析,是一种在生物信息学和基因组学中常用的图形表示方法,主要用于展示基因表达数据的差异。它通常用于基因表达微阵列或RNA测序数据的可视化,帮助研究人员识别在不同条件下表达差异显著的基因。 火山图的基本构成 X轴:通常表示…...

docker firewalld 防火墙设置

1、环境 centos 7 firewalld docker-ce docker 默认会更改防护墙配置 导致添加的防火墙策略不生效&#xff0c;可以启用firewalld 重新设置策略 2、启用防火墙 systemctl start firewalld systemctl enable firewalld3、配置文件禁用docker 的iptables /etc/docker/daemon.js…...

《问题004:报错-JS问题-unknown: Invalid shorthand property initializer.》

问题描述&#xff1a; unknown: Invalid shorthand property initializer. (25:13) unknown:无效的简写属性初始化项 解决方法&#xff1a; “”应该写为“&#xff1a;”&#xff08;globalData 改成 globalData: &#xff09;...

什么是 MLPerf?

什么是 MLPerf&#xff1f; MLPerf 是一个用于衡量机器学习硬件、软件和服务性能的标准化基准测试平台。它由 MLCommons 组织开发&#xff0c;该组织是由多家领先的科技公司和学术机构组成的。MLPerf 的目标是通过一系列标准化的基准测试任务和数据集&#xff0c;提供一个统一…...

【SpringBoot】第3章 SpringBoot的系统配置

3.1 系统配置文件 3.1.1 application.properties SpringBoot支持两种不同格式的配置文件&#xff0c;一种是Properties&#xff0c;一种是YML。 SpringBoot默认使用application.properties作为系统配置文件&#xff0c;项目创建成功后会默认在resources目录下生成applicatio…...

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch&#xff08;ES&#xff09; Logstash Kibana 这三个开源工具组成&#xff0c;官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…...

ue5笔记

1 点光源 聚光源 矩形光源 参数比较好理解 &#xff08;窗口里面&#xff09;环境光混合器&#xff1a;快速创造关于环境光的组件 大气光源&#xff1a;太阳光&#xff0c;定向光源 天空大气&#xff1a;蓝色的天空和大气 高度雾&#xff1a;大气下面的高度感的雾气 体积…...

TCP重传机制详解

1.什么是TCP重传机制 在 TCP 中&#xff0c;当发送端的数据到达接收主机时&#xff0c;接收端主机会返回⼀个确认应答消息&#xff0c;表示已收到消息。 但是如果传输的过程中&#xff0c;数据包丢失了&#xff0c;就会使⽤重传机制来解决。TCP的重传机制是为了保证数据传输的…...

如何使用javascript将商品添加到购物车?

使用JavaScript将商品添加到购物车可以通过以下步骤实现&#xff1a; 创建一个购物车对象&#xff0c;可以是一个数组或者对象&#xff0c;用于存储添加的商品信息。在网页中的商品列表或详情页面&#xff0c;为每个商品添加一个“添加到购物车”的按钮&#xff0c;并为按钮绑…...

灵犀科技 网站开发/网络推广工作能长久吗

<input type"number" name"phone" id"phone" /> IOS环境下&#xff0c;复制号码&#xff0c;粘贴到input&#xff0c;然后点击一个按钮&#xff0c;获取不到里面的值。 安卓环境可以 解决方法&#xff1a; <input type"text"…...

太原网站建设 thinkphp3.2/拉新工作室在哪里接项目

django-admin 页面标题、页面头信息、模块显示中文 系统设置汉化 在settings.py中修改&#xff1a; #LANGUAGE_CODE en-us LANGUAGE_CODE zh-Hans #TIME_ZONE UTC TIME_ZONE Asia/Shanghai页面的菜单和标题都会显示中文 页面标题自定义 页面标题显示Django 站点管理员…...

网站备案到期了怎么办/网站需要怎么优化比较好

文章目录类适配器代码对象适配器代码类适配器 SDCard 是一个接口&#xff0c;代表了 SD 卡本身具有的功能SDCardImpl 是一个具体的实现类&#xff0c;代表了 SDCard 一种具体的实现形式TFCard 是一个接口&#xff0c;代表了 TF 卡本身具有的功能TFCardImpl 是一个具体的实现类…...

服装网站建设平台分析/关键词网站推广

%%主程序theta0pi/10; %%初始角度&#xff0c;可以设置不同的值m1;k80;g9.8;l01; %%l0为弹簧原来长度ll0m*g/k; %%l为弹簧静止时长度[t,u1]ode45(thbfun,[0:0.005:15],[l0 0 theta0 0],[ ],l,k,m,g);[y1,x1]pol2cart(u1(:,3),u1(:,1));y1-y1;figureymaxmax(abs(y1));axis…...

做门户类网站报价/长春做网络优化的公司

解压缩到plugin 重启idea就行了 4 改下压缩包 后缀 为txt 可以直接 传入快乐平安...

武汉定制公交网站/百度竞价推广屏蔽软件

Golang1.18新特性 golang1.18已经发布一年多了&#xff0c;目前最新的版本是1.19&#xff0c;但作为生产&#xff0c;需保持谨慎态度&#xff0c;目前把项目的版本从1.16升级到了1.18&#xff0c;同时针对1.1.8的新特性做了一下记录&#xff0c;当然1.1.8更新了不少内容&#…...