• 揭开ChatGPT面纱(1):准备工作(搭建开发环境运行OpenAI Demo)


    本博客的gitlab仓库:地址,本博客对应01文件夹。


    序言:探索人工智能的新篇章

    随着人工智能技术的飞速发展,ChatGPT作为其中的佼佼者,已经逐渐从实验室走向了公众视野。它不仅仅是一个简单的聊天机器人,而是代表了自然语言处理(NLP)领域的前沿技术。在ChatGPT的帮助下,我们能够实现更自然、更智能的人机交互,这无疑为开发者和普通用户带来了全新的体验和可能性。

    然而,对于许多初学者和爱好者来说,如何开始接触和使用ChatGPT,可能是一个令人望而却步的问题。从注册账号到搭建开发环境,再到利用线上平台如Google Colab进行实践,每一步都充满了挑战。本系列博客文章的目的就是揭开ChatGPT的神秘面纱,带你一步步走进这个充满魔力的AI世界。

    在《揭开ChatGPT面纱(一):准备工作》中,我将从最基础的步骤开始,包括如何搭建一个适合的开发环境,以及如何编写一个OpenAI的Demo来快速体验ChatGPT的强大功能。

    • 获取OpenAI的API Key:

    在国内想要注册OpenAI是比较困难的,有的网站声称可以提供海外虚拟信用卡和海外手机号,这是不靠谱的,后续注册好了也可能会在使用过程中被封号,因此我找了第三方(TB)来获得API Key。总之,这个步骤请自行解决。

    一、搭建开发环境

    首先,确保你已经在电脑上安装了conda,以下命令均是使用的conda创建的虚拟环境。

    • 创建虚拟环境:
    conda create -n openaidemo python==3.10
    # 激活
    conda activate openaidemo
    
    • 1
    • 2
    • 3
    • 安装所需依赖:
    pip install openai==1.6.1
    
    • 1

    二、编写并运行demo

    我编写了一个可以和gpt3.5进行单词对话的demo,代码如下:

    1.代码

    from openai import OpenAI
    import httpx
    import json
    
    # 读取配置,在上传gitlab时配置文件ignore了
    with open('../config/openai.json') as config_file:
        config = json.load(config_file)
    
    # 根据你自己的情况更改代理地址(如果你开了VPN就不用配这个)和API key
    client = OpenAI(
        base_url=config['base_url'],
        api_key=config['key'],
        http_client=httpx.Client(
            base_url=config['base_url'],
            follow_redirects=True,
        ),
    )
    
    
    def get_response(input):
        completion = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": input}
            ]
        )
        message = completion.choices[0].message.content
        return message
    
    
    if __name__ == "__main__":
        user_input = input("我:")
        generated_text = get_response(user_input)
        print(f"AI:{generated_text}")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    2.解析

    这段代码使用了openai库和httpx库,目的是创建一个客户端来与一个自定义的OpenAI API服务进行交互,并使用该服务生成文本。下面是逐行解析:

    1. from openai import OpenAI:从openai库中导入OpenAI类。

    2. import httpx:导入httpx库,这个库用于发送HTTP请求。

    3. client = OpenAI(...):创建一个OpenAI类的实例,配置了自定义的API基础URL和API密钥。这个实例将用于与OpenAI API服务进行交互。

    4. base_url="https://...":设置API的基础URL,这个URL指向一个第三方服务(代理)。

    5. api_key="sk-...":设置用于认证的API密钥。

    6. http_client=httpx.Client(...):在创建OpenAI实例时,传递一个httpx.Client实例作为http_client参数。这个httpx.Client实例也被设置了相同的基础URL,并配置为跟随HTTP重定向。

    7. follow_redirects=True:配置httpx.Client实例在发送请求时跟随HTTP重定向。

    8. def get_response(input)::定义一个函数get_response,它接受一个字符串参数input,这个字符串将作为输入提示传递给模型。

    9. completion = client.chat.completions.create(...):调用clientchat.completions.create方法来生成文本。传递的参数包括模型名称和消息列表。

    10. model="gpt-3.5-turbo":指定使用的模型是gpt-3.5-turbo

    11. messages=[...]:定义一个消息列表,包含两个字典,分别代表系统消息和用户输入。

    12. {"role": "system", "content": "You are a helpful assistant."}:系统消息,告诉模型扮演一个有帮助的助手角色。

    13. {"role": "user", "content": input}:用户消息,内容是函数参数input的值。

    14. message = completion.choices[0].message.content:从生成的完成结果中获取第一个选择的消息内容。

    15. return message:返回获取的消息内容。

    16. user_input = input("我:"):如果作为主程序运行,从标准输入读取用户输入。

    17. generated_text = get_response(user_input):使用用户输入调用get_response函数来生成文本。

    18. print(f"AI:{generated_text}"):打印出由AI生成的文本。

    3.执行结果

    在这里插入图片描述

    至此,demo就成功地运行起来了。


  • 相关阅读:
    C++11一些零碎的知识点介绍
    Windows下的RabbitMQ安装教程(遇到很多无语的问题,已解决)
    重学java 71.网络编程
    AWS安全性身份和合规性之IAM Identity Center(AWS Single Sign-On)
    商用车第一张,比亚迪引领汽车智能网联安全合规新趋势
    澳洲猫罐头的表现如何呢?真正好的顶尖猫罐头大揭秘
    Unix Network Programming Episode 76
    分布式系统——分布式系统知识脑图
    树莓派安装ubuntu系统
    golang--swagger集成
  • 原文地址:https://blog.csdn.net/Tracycoder/article/details/137998689