【黑客松训练营demo】NVIDIA 赛博算命

一、背景

最近偶然加入了NVIDIA NIM 黑客松训练营,训练营给大家提供了免费的NVIDIA NIM平台,可以选择其一来搭建自己的生成式AI应用。

我作为一个计算机小白,很感激能有这个机会,在过去几周中学到了很多新东西。当拿到这个demo任务时,我灵机一动想要让AI协助大家算命。

二、实验步骤

2.1 环境安装

pip install openai
pip install gradio == 3.50.0

2.2 项目代码

from openai import OpenAI
import gradio as gr
client = OpenAI(
    base_url = "https://integrate.api.nvidia.com/v1",
    api_key = "$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC" 
)

选择了NIM 平台中的 phi-3 LLMs 模型

它是轻量级,具有强大的数学和逻辑推理能力的大语言模型

定义主函数 getFortune,它有两个主变量birth_date 和 fortune_type

birth_date 为用户输入的自己的出生日期;fortune_type 为算命方式,包括中国的八字和外国的星盘两种,用户可以选择其中一种

def getFortune(birth_date, fortune_type):
    question = f"Analyze the {fortune_type} of a person born on {birth_date}"
    # 设置生成参数:temperature控制随机性,top_p控制多样性,max_tokens限制最大生成长度,stream设置为True以流式接收结果
    completion = client.chat.completions.create(
        model="microsoft/phi-3-mini-4k-instruct",
        messages=[{"role": "user", "content": question}],
        temperature=0.1,
        top_p=0.2,
        max_tokens=2048,
        stream=True
    )
    # 流式处理生成的结果
    # 遍历每个返回的块
    response_text = ""
    for chunk in completion:
        if chunk.choices[0].delta.content is not None:
            response_text += str(chunk.choices[0].delta.content)
            print(response_text)
    return response_text

网站可视化部分

types = ["Bazi","natal chart"]

# 启动Gradio应用
iface = gr.Interface(
    fn=getFortune,
    inputs=[
        gr.Textbox(label="输入出生日期 (格式:YYYY-MM-DD)"),
        gr.Dropdown(types, label="选择类型"),
    ],
    outputs="text",
    title="赛博算命",
    description="输入您的出生日期,并选择算命类型(八字-Bazi或星盘-natal chart)来获取预测。"
)

# 启动Gradio界面
iface.launch()

三、结果展示

 

 星盘运行结果

 

八字运行结果

从结果上分析如果选择“八字——Bazi”,它的运算结果不太准,属相总是不正确(可能英文训练数据中,与八字相关内容较少);但如果选择“星盘——natal chart”,运算结果比较准确。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值