利用Dify+Kimi免费使用Kimi的API接口的操作和使用方法

废话不多说,直接开整kimi-free-api项目。

1、kimi-free-api服务安装启动

支持高速流式输出、支持多轮对话、支持联网搜索、支持智能体对话、支持长文档解读、支持图像OCR,零配置部署,多路token支持,自动清理会话痕迹。

与ChatGPT接口完全兼容。

还有以下八个free-api欢迎关注:

阶跃星辰 (跃问StepChat) 接口转API step-free-api

阿里通义 (Qwen) 接口转API qwen-free-api

智谱AI (智谱清言) 接口转API glm-free-api

秘塔AI (Metaso) 接口转API metaso-free-api

讯飞星火(Spark)接口转API spark-free-api

MiniMax(海螺AI)接口转API hailuo-free-api

深度求索(DeepSeek)接口转API deepseek-free-api

聆心智能 (Emohaa) 接口转API emohaa-free-api

github地址:https://gitcode.com/LLM-Red-Team/kimi-free-api/overview

1.1、安装前的准备

先从 https://kimi.moonshot.cn 获取refresh_token。进入kimi随便发起一个对话,然后按F12,打开开发者工具,从Application > Local Storage中找到refresh_token的值(记得先记录下来),将作为Authorization的Bearer Token值:Authorization: Bearer TOKEN。如下图所示:

1.2、安装docker和docker-compose

找一台具有公网IP(可以连接互联网的机器),并且防火墙放开8000端口。

docker和docker-compose的具体安装方法,可以参照:安装Milvus向量数据库 中的第二小节Docker安装,这里就不在重复介绍了。

要求:Docker 19.03 or later Docker Compose 1.25.1 or later。

安装完成docker和docker-compose之后,就可以拉取kimi-free-api的镜像了。如下:

1.2.1、拉取镜像并启动

[root@Bert kimi]# docker run -it -d --init --name kimi-free-api -p 8000:8000 -e TZ=Asia/Shanghai vinlic/kimi-free-api:latest

1.2.2、查看kimi-free-api的运行日志

利用docker ps -a命令查看正在运行的容器,找到kimi-free-api这个容器,如下图:

[root@Bert kimi]#  docker logs -f kimi-free-api

1.2.3、启动、重启、停止kimi-free-api服务

[root@Bert kimi]# docker start kimi-free-api

[root@Bert kimi]# docker restart kimi-free-api

[root@Bert kimi]# docker stop kimi-free-api

以上操作也可以用kimi-free-api服务的容器ID进行操作。除了直接用docker拉取镜像之外,还可以用docker-compose进行操作。如下方法:

[root@Bert kimi]# vi docker-compose.yml

version: '3'

services:
  kimi-free-api:
    container_name: kimi-free-api
    image: vinlic/kimi-free-api:latest
    restart: always
    ports:
      - "8000:8000"
    environment:
      - TZ=Asia/Shanghai

[root@Bert kimi]# docker-compose up -d

-d:代表后台启动的意思。也可以不使用-d。

docker-compose启动会有点慢,耐心等待即可。

启动成功后,可以使用curl命令检查接口是否能正常使用,也可以在浏览器中访问测试。

如下所示:

利用curl命令测试:

[root@Bert kimi]# curl -I http://192.168.20.4:8000/v1/chat/completions

[root@Bert kimi]# curl -I http://192.168.20.4:8000/v1/chat/completions
HTTP/1.1 200 OK
Vary: Origin
Access-Control-Allow-Origin: *
Accept-Ranges: bytes
Content-Type: application/json; charset=utf-8
Content-Length: 156
Date: Tue, 28 May 2024 08:47:39 GMT
Connection: keep-alive
Keep-Alive: timeout=5

利用浏览器测试:

因为接口需要用POST方法调用,直接从浏览器访问时是GET请求,所以会报出以上的错误问题。

查看kimi-free-api访问的日志:

[root@Bert kimi]# docker logs -f kimi-free-api
[2024-05-28 16:02:15.755][info][index<983,30>] <- POST /v1/chat/completions 427ms
[2024-05-28 16:02:22.192][success][index<1340,22>] Stream has completed transfer 6437ms
[2024-05-28 16:47:00.217][debug][index<992,22>] -> GET /v1/chat/completions request is not supported - 192.168.20.1
[2024-05-28 16:47:00.218][info][index<999,24>] <- GET /v1/chat/completions 1ms
[2024-05-28 16:47:00.218][warning][index<994,22>] [请求有误]: 正确请求为 POST -> /v1/chat/completions,当前请求为 GET -> /v1/chat/completions 请纠正
[2024-05-28 16:47:39.713][warning][index<994,22>] [请求有误]: 正确请求为 POST -> /v1/chat/completions,当前请求为 HEAD -> /v1/chat/completions 请纠正
[2024-05-28 16:47:39.713][debug][index<992,22>] -> HEAD /v1/chat/completions request is not supported - 192.168.20.4
[2024-05-28 16:47:39.714][info][index<999,24>] <- HEAD /v1/chat/completions 0ms

说明访问连通性可用。到此为止kimi-free-api的服务安装与启动、测试已经完成,下一步就可以用dify平台连接kimi-free-api进行对话了,如果不想用dify的话,也可以自己写接口去调用kimi-free-api的接口进行对话。

2、dify平台安装与配置

2.1、下载dify

将Dify代码从github下载至服务器,或者通过http的方式下载Dify的代码的zip文件后,上传至服务器解压缩。

Dify源码下载地址:https://github.com/langgenius/dify

2.2、安装dify

解压出下载的dify,然后进入到docker目录下,如下所示:

[root@Bert kimi]# cd /app/dify/dify-main/docker

[root@Bert kimi]# docker-compose up -d

耐心等待安装即可。

2.3、配置nginx

安装完成之后,会在nginx目录下生成conf.d/default.conf配置文件,内容如下:

server {
    listen 80;
    server_name _;

    location /console/api {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location /api {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location /v1 {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location /files {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location / {
      proxy_pass http://web:3000;
      include proxy.conf;
    }
}

此时需要把对应的server_name、proxy_pass改成对应的IP。

其中server_name后面可填写域名或是IP,此处的域名或是IP是指安装dify所在的机器。

proxy_pass后面所填的IP需要利用docker inspect <容器ID或容器运行的服务名称>查找到对应端口的IP,如下所示(以5001端口为例):

查看运行中的容器,并且找到对应的5001端容器。

[root@Bert kimi]# docker ps -a

利用docker inspect获取对应容器的元数据

[root@Bert kimi]# docker inspect docker-api-1

注:5001端口会有2个,使用docker-api-1对应的即可,如下图所示2个5001端口:

如下图所示:

3000端口的查找方法如上所示。

找到对应的IP之后,再回到conf.d目录下,修改其中的IP,如下所示:

[root@Bert kimi]# cd /app/dify/dify-main/docker/nginx/conf.d
[root@Bert kimi]# vi default.conf
server {
    listen 80;
    server_name 192.168.20.4;

    location /console/api {
      proxy_pass http://172.22.0.8:5001;
      include proxy.conf;
    }

    location /api {
      proxy_pass http://172.22.0.8:5001;
      include proxy.conf;
    }

    location /v1 {
      proxy_pass http://172.22.0.8:5001;
      include proxy.conf;
    }

    location /files {
      proxy_pass http://172.22.0.8:5001;
      include proxy.conf;
    }

    location / {
      proxy_pass http://172.22.0.5:3000;
      include proxy.conf;
    }

    # If you want to support HTTPS, please uncomment the code snippet below
    #listen 443 ssl;
    #ssl_certificate ./../ssl/your_cert_file.cer;
    #ssl_certificate_key ./../ssl/your_cert_key.key;
    #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    #ssl_prefer_server_ciphers on;
    #ssl_session_cache shared:SSL:10m;
    #ssl_session_timeout 10m;
}

重启容器中的nginx,查找方法同上。

注:每次重启dify相关的容器,对应的IP都会发生变化,所以重启之后,一定要重新检查一下IP,再重新配置的conf.d/default.conf中proxy_pass的IP地址。

[root@Bert kimi]# docker restart docker-nginx-1

2.4、验证

用浏览器访问dify所在的主机地址,进行用户初使化:http://192.168.20.4/install,按要求注册用户即可,注册完利用注册好的用户登录dify平台,如下图:

点击右上角用户下拉,选择“设置”:

选择“模型供应商”,找到“OpenAI-API-compatible”点击:

因为我这里已经创建好了,所以大家可以在图中标蓝的区域查找“OpenAI-API-compatible”点击配置,如下图所示:

模型类型:选择LLM

模型名称:可以自定义,也可以填写成和kimi-free-api容器中运行的名字一样。

API KEY:填写1.1小节点获取的refresh_token。

API endpoint URL:填写kimi-free-api所部署的机器地址

Completion mode:选择对话

模型上下长度:填写4096

最大token上限:填写4096

Function calling:除了不选“不支持”外,其它的选项都可以

Stream function calling:选择支持

Vision支持:选择支持

流模式返回对结果的分隔符:填写\n\n

填好之后,点击保存即可,这会加载的时间有可能会长一点,此时大家可以用docker logs查看kimi-free-api的日志,检查有没有报错。

[root@Bert kimi]# docker logs -f  kimi-free-api

如果发现日志中有访问kimi.moonshot.cn无法正常访问的情况,可以从以下方面解决:

如下图的报错:

1、先查看部署kimi-free-api的主机是否能正常访问互联网。

2、如果不能正常访问互联网,先解决该问题后,再重启docker和kimi-free-api。

这是因为ipv4转发被禁用造成,可以使用以下方法排查和解决:

1、重启kimi-free-api时不要使用docker restart kimi-free-api进行重启,有可能不会生效,使用docker-compose down停掉之后,再使用docker-compose up -d启动。

2、也可以vi /etc/sysctl.conf中添加一行配置net.ipv4.ip_forward=1,使用sysctl -p生效,重启network服务,其次再重启docker和kimi-free-api。

正常保存之后,再点击“创建空白应用”,如下图所示:

创建好之后,会在首页出现你创建的应用,如下图所示:

此时就可以点击所创建的应用进行问答了,也可以点击最上方的“探索”进行问答,如下图所示:

点击所创建的应用问答:

点击探索的问答:

到此为止Dify+Kimi-free-api成功完成本地部署与使用。

dify是一个开源的Python库,用于快速开发机器学习模型和部署机器学习服务。它提供了一系列的工具和接口,帮助开发者在机器学习项目中更高效地进行数据处理、特征工程、模型训练和模型部署等任务。 dify的主要特点包括: 1. 简单易用:dify提供了简洁的API和丰富的功能,使得开发者可以快速上手并进行高效的开发。 2. 模块化设计:dify采用模块化的设计,每个模块都有清晰的功能和接口,可以根据需求选择性地使用。 3. 数据处理和特征工程:dify提供了丰富的数据处理和特征工程工具,包括数据清洗、特征选择、特征变换等功能,帮助开发者更好地准备数据。 4. 模型训练和评估:dify支持多种常见的机器学习算法,并提供了模型训练和评估的接口,方便开发者进行模型选择和性能评估。 5. 模型部署和服务化:dify支持将训练好的模型部署为API服务,方便其他应用程序进行调用和集成。 如果你想开发新模块,可以按照以下步骤进行: 1. 确定模块的功能和接口:明确你的模块要解决的问题,并设计好相应的功能和接口。 2. 实现模块代码:使用Python编写你的模块代码,可以借助dify提供的工具和接口来简化开发过程。 3. 测试和调试:对你的模块进行测试和调试,确保其功能正常并符合预期。 4. 文档编写:编写清晰的文档,介绍你的模块的功能、使用方法和示例代码等。 5. 提交和分享:将你的模块提交到dify的开源社区,与其他开发者分享你的成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值