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

【001】调用kimi实现AI对话_#py

调用kimi实现AI对话

  • 1. 申请key和基本要求
    • 1.1 注意事项
    • 1.2 学习
  • 2. 用法
    • 2.1. 非连续对话的完整版
    • 2.2. 加强连续对话的能力

1. 申请key和基本要求

进入Moonshot AI的网址,按照如下操作获取key,并记住其值,方便后续使用
在这里插入图片描述

1.1 注意事项

如果是自己一个人用的话,注意 RPM,每分钟可以询问次数。刚注册的话,每分钟只能对话三次,超过的话,就会报警。
在这里插入图片描述

1.2 学习

在Moonshot AI上面有着丰富的学习资料,可以参考和借鉴

2. 用法

以下是非联网的做法,仅调用kimi.AI的基础对话功能。

2.1. 非连续对话的完整版

from openai import OpenAI
import time

class Main_Name():
    def __init__(self):
        super().__init__()
        self.main()

    def AIclient(self):
        self.client = OpenAI(
            api_key="MOONSHOT_API_KEY",  # 在这里将 MOONSHOT_API_KEY 替换为你从 Kimi 开放平台申请的 API Key
            base_url="https://api.moonshot.cn/v1",
        )

    # 内容输入
    def InputContent(self, content):
        completion = self.client.chat.completions.create(
            model="moonshot-v1-8k",
            messages=[
                {"role": "user", "content": content}
            ],
            temperature=0.3,
        )

        # 通过 API 我们获得了 Kimi 大模型给予我们的回复消息(role=assistant)
        return completion.choices[0].message.content   # 获取问答结果

    def main(self):
        self.AIclient()  # 调用API
        # try:
        while True:
            # 检测用户输入
            self.content = input("用户: ")  	# 输入内容
            self.answer = self.InputContent(self.content)		# 调用问答并返回结果
            print(self.answer)   # 打印结果
            time.sleep(2) # 增加休眠时间,防止每分钟的聊天超过限制
        # except: pass


# 通过 API 我们获得了 Kimi 大模型给予我们的回复消息(role=assistant)
if __name__ == '__main__':
    ex = Main_Name()
    ex.main()

2.2. 加强连续对话的能力

调用API时加载初始对话

    def AIclient(self):
        self.client = OpenAI(
            api_key="MOONSHOT_API_KEY",  # 在这里将 MOONSHOT_API_KEY 替换为你从 Kimi 开放平台申请的 API Key
            base_url="https://api.moonshot.cn/v1",)
        self.messages = [{"role": "system", "content": "你是 Kimi。"},]   # 初始对话内容及预设

内容输入时将新的内容添加入对话中

    def InputContent(self, content):
        self.messages.append({"role": "user", "content": content})
        completion = self.client.chat.completions.create(
            model="moonshot-v1-8k",
            messages=self.messages,
            temperature=0.3,)
        # 通过 API 我们获得了 Kimi 大模型给予我们的回复消息(role=assistant)
        assistant_message = completion.choices[0].message
        # 为了让 Kimi 大模型拥有完整的记忆,我们必须将 Kimi 大模型返回给我们的消息也添加到 messages 中
        self.messages.append(assistant_message)
        # 返回回答内容
        return completion.choices[0].message.content

替换上述两个代码块即可实现连续对话的功能。


http://www.kler.cn/news/365597.html

相关文章:

  • CSS行块标签的显示方式
  • 李沐读论文-启发点记录2:Resnet--残差连接--kaiming老师神作
  • 入侵检测算法平台部署LiteAIServer视频智能分析平台行人入侵检测算法
  • 解决Redis缓存穿透(缓存空对象、布隆过滤器)
  • Geranium天竺葵:位置修改、守护进程管理器、清理器、屏幕时间删除器和 TrollStore 监督器
  • 计算机使用梯子后关机,再次使用计算机时未开启梯子,无法正常上网
  • 隨筆 20241024 Kafka中的ISR列表:分区副本的族谱
  • 利用客户端导入有关联的业务数据(DBeaver+sql)
  • Linux中安装配置SQLite3,并实现C语言与SQLite3的交互。
  • Python基础之循环语句
  • 近似推断 - 学习的近似推理篇
  • go语言结构体与json数据相互转换
  • 如何动态改变本地的ip
  • 【华为路由】OSPF多区域配置
  • LINUX1.2
  • 主机电子邮件访问:实现高效通信的关键
  • Node.js 23 发布了!不再支持 32 位 windows 系统
  • Ceph入门到精通-Osd db扩容
  • 【赵渝强老师】Hive的内部表与外部表
  • C语言运算符——[]下标运算符
  • 【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
  • 离offer更进一步的JVM详细面试题(含答案)
  • ⭐ Unity 序列帧播放脚本
  • NVIDIA发布Nemotron-70B-Instruct,超越GPT-4o和Claude 3.5的AI模型
  • 提示词高级阶段学习day3.2结构化 Prompt 的优势
  • 什么是3D展厅?有哪些应用场景?