V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
TcDhl
V2EX  ›  Python

基于 OpenAI 的 API, 实现上下文关联的 ChatGPT 对话工具

  •  1
     
  •   TcDhl · 2023-01-08 09:02:25 +08:00 · 1882 次点击
    这是一个创建于 668 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ChatGPT 工具助手


    <<源码传送门>>

    想在 V 站找个大哥看看能不能解决 Nuitka 打包报错的问题...因为 Nuitka 给出的报错实在是费解...

    代码质量随便喷, 喷的越多我就有越多机会改善自己哈哈

    简介:

    • 界面库用的是 PySide6
    • 需要准备个梯子
    • 需要有个 OpenAI 的帐号
    • OpenAI 的 API 调用方式, 目前不具备让对话产生上下文关联, 是一次性对话
    • 程序中做了简单的上下文关联, 只要对话不是特别离谱, 基本上使用起来还行, 你们也可以自己改个上下文关联的机制

    准备工作及步骤:

    • 在 OpenAI 后台申请一个 API keys
    • 在 OpenAI 后台查看组织 ID Organization ID
    • 下载代码:
      [email protected]:TcDhlPro/PySide6_ChatGPTools.git
      
    • 进入目录:
      cd PySide6_ChatGPTools
      
    • 创建 Python 虚拟环境:
      python -m venv VenvPathName
      
    • 激活 Python 虚拟环境:
      怎么激活自己百度下
      
    • 在激活的虚拟环境中安装三方库:
      pip install openai==0.25.0
      pip install transformers==4.25.1
      pip install tensorflow==2.11.0
      pip install requests==2.28.1
      pip install PySide6==6.3.1
      
    • 进入目录:
      cd PySide6_ChatGPTools/ChatGptTools
      
    • 运行程序:
      python -m AppRun
      
      • 在这一步可能会遇到一个错误Could not find the DLL(s) 'msvcp140_1.dll'
      • 根据报错提示中的 Url, 打开后再根据你的 Python 版本
      • 比如我是 64 位的, 我安装了vc_redist.x64.exe
    • 程序截图参考: Img

    关于程序打包

    • Nuitka 打包失败, 问题应该在三方库 transformers 或 tensorflow

    • Pyinstaller 打包

      • 打包命令:

        pyinstaller `
        -D -y -i icon.ico `
        AppRun.py `
        --copy-metadata tqdm `
        --copy-metadata regex `
        --copy-metadata requests `
        --copy-metadata packaging `
        --copy-metadata filelock `
        --copy-metadata numpy `
        --copy-metadata tokenizers
        
      • 关于命令中--copy-metadata参数的值是怎么来的:

        • 在当前虚拟环境中新建个temp.py文件, 代码如下:
        from transformers.dependency_versions_check import pkgs_to_check_at_runtime
        print(pkgs_to_check_at_runtime)
        
      • 程序下载

    19 条回复    2023-01-09 16:01:03 +08:00
    Juszoe
        1
    Juszoe  
       2023-01-08 10:31:10 +08:00   ❤️ 1
    我有个疑问,官方 API 目前只有 GPT-3 提供吧? ChatGPT 是 GPT-3.5 ,这两者还是有区别的
    zololiu
        2
    zololiu  
       2023-01-08 12:05:37 +08:00
    好像在十一月底的时候,在微信搞了个 ChatGPT ,做自我介绍,还是可以关联上下文的。当时微信封号,就没再玩了。
    十二月又再小飞机上搞了个 ChatGPT ,测试了一下做自我介绍,好像就答非所问,不能联系上下文了~~降智了很多。

    有人知道这期间是发生了什么事吗?😂😂
    TcDhl
        3
    TcDhl  
    OP
       2023-01-08 12:32:47 +08:00 via iPhone
    @Juszoe #1
    我就问一些基础知识倒是回答的蛮直接
    至于 3.x 的版本倒是没见官网哪里有写
    TcDhl
        4
    TcDhl  
    OP
       2023-01-08 12:43:31 +08:00 via iPhone
    @zololiu #2
    api 调用的需要自己做上下文关联,官方提供的 api 是一次性对话
    winglight2016
        5
    winglight2016  
       2023-01-08 12:52:56 +08:00
    这个 API 调用模式和 chatGPT 差别挺大的,还需要一些关键词提示才能实现对话
    zololiu
        6
    zololiu  
       2023-01-08 12:54:30 +08:00
    @TcDhl 原来如此,了解了,感谢。
    TcDhl
        7
    TcDhl  
    OP
       2023-01-08 12:56:22 +08:00 via iPhone
    @zololiu #6
    而且就算自己做了上下文关联的逻辑,还得调用价格最贵的那个模型才可以
    zololiu
        8
    zololiu  
       2023-01-08 13:20:53 +08:00
    @TcDhl 11 月份使用 Token 链接的时候,是可以联系上下文的,而且没有付费。
    后来我看用 API 之后,后台有显示消费额度了~~
    TcDhl
        9
    TcDhl  
    OP
       2023-01-08 13:25:45 +08:00 via iPhone
    @zololiu #8
    token 那个太麻烦,不太稳,所以还是考虑 api
    cveoy
        10
    cveoy  
       2023-01-08 15:37:13 +08:00
    这不是有免费的吗?薅羊毛不就得了
    https://chatgpt.sbaliyun.com/
    Juszoe
        11
    Juszoe  
       2023-01-08 16:00:42 +08:00
    https://beta.openai.com/docs/models/gpt-3
    版本可以看这里,目前 ChatGPT 还没在里面,据说 GPT-4 快要发布了,ChatGPT 放出来是一个实验品
    ChristianSwift
        12
    ChristianSwift  
       2023-01-08 16:05:42 +08:00 via iPhone
    有没有一种可能,ChatGPT 没有 api ?
    TcDhl
        13
    TcDhl  
    OP
       2023-01-08 16:42:26 +08:00 via iPhone
    @ChristianSwift #12
    当然没有哈哈
    blankmiss
        14
    blankmiss  
       2023-01-08 17:24:01 +08:00
    不是抓包吗 我看 chat 上面就两个接口
    twor2
        15
    twor2  
       2023-01-08 22:43:11 +08:00
    版本不同,详细测试过
    就算是用各种 prompt 来测试 gtp3 ,也没有 chatgpt 聊天强大
    TcDhl
        16
    TcDhl  
    OP
       2023-01-09 07:22:20 +08:00 via iPhone
    @twor2 #15
    要自己做上下文关联,纯调用的话没关联的
    twor2
        17
    twor2  
       2023-01-09 10:11:52 +08:00
    @TcDhl 提交 prompt 的时候包含了
    TcDhl
        18
    TcDhl  
    OP
       2023-01-09 12:34:16 +08:00 via iPhone
    @twor2 #17 不会的,API 方式是一次性对话,不包含
    twor2
        19
    twor2  
       2023-01-09 16:01:03 +08:00
    @TcDhl 我自己拼接的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5511 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:48 · PVG 13:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.