如何使用Langchain集成Kimi AI(Moonshot AI)

如何使用Langchain集成Kimi(Moonshot AI)

    • 一、获取API密钥
      • 1. 注册账号
      • 2. 获取密钥
    • 二、环境配置
    • 三、上手
    • 四、整合一下
    • 五、检验一下成果
    • 六、官方网站

一、获取API密钥

1. 注册账号

毕竟只有注册过帐号才能拿到key~
Moonshot 登陆

2. 获取密钥

在这里插入图片描述
用户中心 > api Key管理 > 新建

PS:注意保存好你的key,这个key只会在新建的时候展示一次。
PS2:不要把你的key给任何人,有了key就可以使用你的token,token就是钱!

二、环境配置

要确保你的python环境没问题,然后需要下载如下库
python没下载的先下载一下python,这里就不再赘述了

#安装langchain库
pip install langchain
#安装Openai库
pip install openai
# 安装langchain集成社区库
pip install langchain_community

三、上手

先用一下原生的api试试链接是否成功

from openai import OpenAI
# 连接
client = OpenAI(api_key = '你的key',base_url = 'https://api.moonshot.cn/v1',
)
# prompt
response =  client.chat.completions.create(model="moonshot-v1-8k", # 模型名messages=[{"role": "system", "content": "You are a creative AI."},{"role": "user", "content": "请给我的花店起个名,多输出几个结果,直接输出名字,不要输出多余的语句"},], # prompt要求temperature=0.8, # 随机度max_tokens=20, # 最大输出token数#这个的意思是将结果截取到这个token数,并不是response只有这些token数
)
# 输出
print(response.choices[0].message.content)
1. 花语轩
2. 绿意坊
3. 香韵园

ok,没有问题。

接下来集成到Langchain里试试

import os
from langchain_community.llms.moonshot import Moonshot
os.environ["MOONSHOT_API_KEY"] = '你的key'
chat = MoonshotChat(model="moonshot-v1-8k",temperature=0.8,max_tokens=20,)
messages = [SystemMessage(content="你是一个很棒的智能助手"),HumanMessage(content="请给我的花店起个名,多输出几个结果,直接输出名字,不要输出多余的语句")
]
response = chat(messages)
print(response)
content='1. 绿意轩花坊\n2. 芳菲满园\n3. 花' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 20, 'prompt_tokens': 39, 'total_tokens': 59, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'moonshot-v1-8k', 'system_fingerprint': None, 'finish_reason': 'length', 'logprobs': None} id='run-e262850d-46da-4fd2-b162-17dbfe05a357-0'

ok,没有问题
这个可以清晰的看出来response到底返回给我们了点什么

四、整合一下

这个使用到了读取配置文件的库,需要下载configparser包

pip install configparser

直接把key输入到运行文件里的安全性很低,很容易泄漏,而且耦合性还高,推荐大家自己写个配置文件,像下面这样:

新建setting.ini文件,将下面这些写入

# setting.ini
# 这里key的内容不需要加引号,直接粘贴进去即可
[Moonshot]
OPENAI_API_KEY=你的key
model=moonshot-v1-8k
url=https://api.moonshot.cn/v1

如果你不只想集成moonshot,还想集成其他的语言模型或者数据库等配置,可以直接在此文件添加section来统一管理,很方便。

新建init.py文件,专用于初始化,方便使用。

# init.py
import os
import configparser
from langchain_community.llms.moonshot import Moonshot
from openai import OpenAI
config = configparser.ConfigParser()
config.read("setting.ini")
os.environ["MOONSHOT_API_KEY"] = config["Moonshot"]["OPENAI_API_KEY"]
# 默认llm配置。
llm = Moonshot(model=config["Moonshot"]["model"],temperature=0.8,max_tokens=20,
)# openAi 默认的接口.
client = OpenAI(api_key = config["Moonshot"]["OPENAI_API_KEY"],base_url = config["Moonshot"]["url"],
)

五、检验一下成果

之前的两个示例可以简化成下面这样

import init
# 使用了默认的client配置
response =  init.client.chat.completions.create(model="moonshot-v1-8k",messages=[{"role": "system", "content": "You are a creative AI."},{"role": "user", "content": "请给我的花店起个名,多输出几个结果,直接输出名字,不要输出多余的语句"},],temperature=0.8,max_tokens=20,
)
print(response.choices[0].message.content)
from langchain_community.chat_models.moonshot import MoonshotChat
from langchain.schema import HumanMessage, SystemMessage
import init
# 这里没有直接用init中的默认配置
# 可以直接这样再次定义,不需要再次导入key之类的东西了
# 虽然代码中没有直接体现init包,但是不要删,这部初始化调用到了init中设定的环境变量
chat = MoonshotChat(model="moonshot-v1-8k",temperature=0.6,max_tokens=50,)
messages = [SystemMessage(content="你是一个很棒的智能助手"),HumanMessage(content="请给我的花店起个名,多输出几个结果,直接输出名字,不要输出多余的语句")
]
response = chat(messages)
print(response)

六、官方网站

最后放一下官方的网站,方便大家学习
Introduction | 🦜️🔗 LangChain
Moonshot AI - 开放平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/58393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发模板Pear Admin Layui

目录 基本资料学习笔记04-Pear-Admin-Layui模板运行05-Pear-Admin-Layui-GIT方式代...06-Pear-Admin与Vue对比 & 07-Pear-Admin与Vue对比补充09-Pear-Admin-CRUD练习-数据库表创建12-Pear-Admin-CRUD练习-引入其它依赖 & 13-Pear-Admin-CRUD练习-三层架构以及常见配置 …

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获(Direct Air Capture,简称DAC)是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

uni-app 封装图表功能

文章目录 需求分析1. 秋云 uchars2. Echarts 需求 在 uni-app 中使用图表功能,两种推荐的图表工具 分析 在 Dcloud市场 搜索Echarts关键词,会出现几款图表工具,通过大家的下载量,可以看到秋云这个库是比较受欢迎的,其…

详细解读个性化定制大杀器IP-Adapter代码

Diffusion models代码解读:入门与实战 前言:IP-Adapter作为Diffusion Models最成功的技术之一,已经在诸多互联网应用中落地。介绍IP-Adapter原理和应用的博客有很多,但是逐行详细解读代码的博客很少。这篇博客从细节出发&#xff…

数据采集之scrapy框架2

本博文使用自动化爬虫框架完成微信开放社区文档信息的爬取(重点理解 scrapy 框架自动化爬 虫构建过程,能够分析 LinkExtractor 和 Rule 规则的基本用法) 包结构目录如下图所示: 主要代码: ( items.p…

深⼊理解指针(2)

目录 1. const修饰指针及变量 2. 野指针 3. assert断⾔ 4. 指针的传址调⽤ 一 const修饰指针及变量(const是场属性——不能改变的属性) 1 const修饰变量 那怎么证明被const修饰的变量本质还是变量呢? 上面我们绕过n,使…

每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书

目录 1.OpenAI因算力瓶颈暂缓GPT-5发布 合作芯片开发寻求突破2.现在,𝕏 允许被你屏蔽的人继续查看你的帖子3.硬刚Intel与AMD!NVIDIA明年推出PC芯片4.苹果停止签署 iOS 18.0.1,不再允许从 18.1 降级5.Nvidia 加入道琼斯指数成份股 …

swoole扩展安装--入门篇

对于php来说,swoole是个强大的补充扩展。这是我第3次写swoole扩展安装,这次基于opencloudos8系统,php使用8.2。 安装swoole扩展首先想到的是用宝塔来安装,毕竟安装方便,还能统一管理。虽然获得swoole版本不是最新的&am…

【大模型开发指南】llamaindex配置deepseek、jina embedding及chromadb实现本地RAG及知识库(win系统、CPU适配)

说一些坑,本来之前准备用milvus,但是发现win搞不了(docker都配好了)。然后转头搞chromadb。这里面还有就是embedding一般都是本地部署,但我电脑是cpu的没法玩,我就选了jina的embedding性能较优(…

pyspark基础准备

1.前言介绍 学习目标:了解什么是Speak、PySpark,了解为什么学习PySpark,了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码,既可以在电脑上简单运行,进行数据分析处理,又可以把代码无缝…

数据库基础(4) . 数据库结构

2.基础结构 2.1.结构及名称 数据库 database 表空间 tablespaces(Oracle) 表格 table 字段 column 记录 record 值 value 2.2.数据库 database 在配置文件中指定存放位置 # 设置mysql数据库的数据的存放目录 datadirD:\MySQL\mysql-8.0.16-winx64\data每个数据库对应…

Meme 币生态全景图分析:如何获得超额收益?

近期,BTC 再次突破 7 万美元大关,市场上贪婪指数再次达到 80,而 Meme 币往往是每次牛市冲锋的号角,比如 $GOAT 5 天内价格一度上涨超 1 万倍。通过对当前市场 TOP 25 Meme 币的交易数据分析,我们发现了几个值得关注的市…

数据结构之二叉树——堆 详解(含代码实现)

1.堆 如果有一个关键码的集合 K { , , , … ,},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,则称为小堆( 或大堆 ) 。将根节点最大的堆叫做最大堆或大根堆,根节点最小的…

高级 <HarmonyOS主题课>构建华为支付服务的课后习题

五色令人目盲&#xff1b; 五音令人耳聋&#xff1b; 五味令人口爽&#xff1b; 驰骋畋猎&#xff0c;令人心发狂&#xff1b; 难得之货&#xff0c;令人行妨&#xff1b; 是以圣人为腹不为目&#xff0c;故去彼取此。 本篇内容主要来自&#xff1a;<HarmonyOS主题课>构建…

酒店民宿小程序,探索行业数字化管理发展

在数字化发展时代&#xff0c;各行各业都开始向数字化转型发展&#xff0c;酒店民宿作为热门行业也逐渐趋向数字、智能化发展。 对于酒店民宿来说&#xff0c;如何将酒店特色服务优势等更加快速运营推广是重中之重。酒店民宿小程序作为一款集结预约、房源管理、客户订单管理等…

猎板PCB2到10层数的科技进阶与应用解析

1. 单层板&#xff08;Single-sided PCB&#xff09; 定义&#xff1a;单层板是最基本的PCB类型&#xff0c;导线只出现在其中一面&#xff0c;因此被称为单面板。限制&#xff1a;由于只有一面可以布线&#xff0c;设计线路上有许多限制&#xff0c;不适合复杂电路。应用&…

Python网络爬虫入门篇!

预备知识 学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求&#xff0c;即发送一个Request&#xff0c;Request包含&#xf…

gerrit 搭建遇到的问题

1、启动Apache&#xff0c;端口被占用 : AH00072: make sock: could not bind to address (0S 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。: AH00072: make sock: could not bind to address 0.0.0.:443 a AH00451: no listening sockets available, shutti…

提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)

文章目录 阿里公共 DNS 介绍免费开通云解析 DNS 服务Windows 编辑 DNS 设置配置 IPv4配置 IPv6 路由器配置 DNS 阿里公共 DNS 介绍 https://alidns.com/ 免费开通云解析 DNS 服务 https://dnsnext.console.aliyun.com/pubDNS 开通服务后&#xff0c;获取 DOH 模板&#xff0…

项目实战使用gitee

1.创建本地仓库 2.进行提交到本地仓库 创建仓库后在idea中会显示图标&#xff0c;点击绿色的√进行快速提交 3.绑定远程仓库 4.番外篇-创建gitee仓库 注意不要勾选其他