Moonshot AI API使用(2)-环境变量配置和简单对话demo

1、添加环境变量

api key有多种使用方式,添加环境变量这种是最安全的,强烈推荐!

打开文件

vi ~/.env

在打开的文件中添加下面两行

export MOONSHOT_API_KEY="你的MOONSHOT API KEY"
export MOONSHOT_API_URL="https://api.moonshot.cn/v1"

保存并退出

:wq

2、安装需要的包

pip install -upgrade openai
pip install python-dotenv  # 安装dotenv,用于加载环境变量

3、查看可用的模型

不同级别的模型使用时的价格是不一样的,具体参考官网。

import os
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())  # 读取本地 .env 文件,里面定义了 MOONSHOT_API_KEY和 MOONSHOT_API_URL

client = OpenAI(
    api_key = os.getenv("MOONSHOT_API_KEY"),
    base_url = os.getenv("MOONSHOT_API_URL")
)
 
model_list = client.models.list()
model_data = model_list.data
 
for i, model in enumerate(model_data):
    print(f"model[{i}]:", model.id)

# model[0]: moonshot-v1-8k
# model[1]: moonshot-v1-32k
# model[2]: moonshot-v1-128k

4、moonshot官网例子-单轮对话

from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())  # 读取本地 .env 文件,里面定义了 MOONSHOT_API_KEY和 MOONSHOT_API_URL

client = OpenAI(
    api_key = os.getenv("MOONSHOT_API_KEY"),
    base_url = os.getenv("MOONSHOT_API_URL")
)
 
completion = client.chat.completions.create(
    model = "moonshot-v1-8k",
    messages = [
        {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"},
        {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"}
    ],
    temperature = 0.3,
)
 
print(completion.choices[0].message.content)
# 你好,李雷!1+1 等于 2。这是一个基本的数学加法问题。如果你有其他问题或需要帮助,请随时告诉我。

5、moonshot官网例子-多轮对话

import os
import json
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())  # 读取本地 .env 文件,里面定义了 MOONSHOT_API_KEY和 MOONSHOT_API_URL

client = OpenAI(
    api_key = os.getenv("MOONSHOT_API_KEY"),
    base_url = os.getenv("MOONSHOT_API_URL")
)

 
history = [{"role": "system", 
    "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}]

def format_json(json_string):
    # json_string = ""
    if (not isinstance(json_string,list)):
        json_str = json.loads(json_string.model_dump_json())
    print(json.dumps(
        json_string,
        indent=4,
        ensure_ascii=False
    ))
    return

def chat(query, history):
    history.append({
        "role": "user", 
        "content": query
    })
    completion = client.chat.completions.create(
        model="moonshot-v1-8k",
        messages=history,
        temperature=0.3,
    )
    result = completion.choices[0].message.content
    history.append({
        "role": "assistant",
        "content": result
    })
    return history
 
print(fromat_json(chat("地球的自转周期是多少?", history)))
print(fromat_json(chat("月球呢?", history)))

两次输出结果如下:
在这里插入图片描述

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值