如何使用Langchain集成Kimi(Moonshot AI)
一、获取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.pyimport 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 - 开放平台
版权归原作者 孤雪心殇 所有, 如有侵权,请联系我们删除。