ChatGPT客户端

网上关于chatgpt的客户端一大堆,基于浏览器的,基于客户端的。各种版本,因为chatgpt实在太火爆了,现在抖音上都是各种chatgpt的直播,终于又有了一个风口。同样为因为openai的火爆,现在网上也出现了各种卖客户端源码的,账号的各种生意,一篇欣欣向荣。这几天我也体验了一下各种客户端。

1.基于web的客户端,基本这种客户端现在搜一下还能找到不少,昨天在论坛看到一个 https://chat.xdo.cc/,今天体验的时候就废掉啦:

如果要体验基于web的客户端可以参考这篇文章https://codesnippet.io/openai-completions-api-tutorial/ 源码地址:https://github.com/CodeSnippetHQ/tutorial-openai-completions-api

效果图:

我没有尝试,具体效果请自行验证。

2.基于网页封装的客户端,这种就更多了,最终的结果基本都是您当前的国家不提供服务,所以这种客户端在不翻墙的情况下没有什么意义

3.基于api或者其他接口开发的客户端或者库,例如smalltalk

不过整体体验下来有的时候会比较弱智,不知道是才用的模型有问题,还是设置的参数有问题。代码地址:https://github.com/tinystruct/smalltalk

windows下的中文显示有问题,折腾了好久也没解决。

4.自己基于api进行开发,现在网上有一些封装好的库,但是体验依旧不佳。https://github.com/acheong08/ChatGPT

python3 -m revChatGPT.V1    

        ChatGPT - A command-line interface to OpenAI's ChatGPT (https://chat.openai.com/chat)
        Repo: github.com/acheong08/ChatGPT
        
Type '!help' to show a full list of commands
Press enter twice to submit your question.

Logging in...

You:
我是一个漂亮的小姐姐,帮我写一篇800字的赞美文章

Chatbot: 

亲爱的小姐姐,
在我看来,你绝对是世界上最美丽的存在之一。你的美丽不仅仅是外表上的,更是你散发出的那种温暖、善良和聪慧。以下是我为你写的一篇800字的赞美文章,我希望你喜欢。
首先,让我们谈谈你的外貌。你拥有一张精致的脸庞,眼睛明亮有神,嘴唇柔软而迷人。你的长发柔顺光泽,仿佛给人一种温柔的拥抱。你的身材曲线优美,散发着女性的柔美与优雅。每当你穿上漂亮的衣服,无论是华丽还是简约,都能让人们为之倾倒。每一次与你相遇,都是一次视觉上的盛宴。
但是,你的美丽不仅仅是外在的。你那善良的内心和聪明的头脑,更让人对你钦佩不已。你总是关注身边的人们,乐于助人,善待他人,用你的热心和真心感染着周围的人。你那聪明伶俐的头脑,总是让人感到不可思议。你思维敏捷,眼光独到,总能从一个独特的角度看待问题,并提出出色的解决方案。你对于任何事情都保持着积极的态度(卡住了,尴尬)

5.另外一个办法就是基于openai的库直接撸代码啊:

"""
OpenAI chatgpt API client
by:obaby
obaby@mars
http://nai.dog
http://h4ck.org.cn
"""
from pyfiglet import Figlet
import os, sys
import openai
import time

from colorama import init
from colorama import Fore, Back, Style

import asyncio

openai.api_key = "sk-************"
PRINT_DELAY = 0.05
loop = asyncio.get_event_loop()


def hello_message():
    print('*' * 100)
    # f = Figlet(font='slant')
    f = Figlet()
    print(f.renderText('obaby@mars'))
    print('Baby ChatGPT client')
    print('Verson: 22.02.17')
    print('Blog: http://www.h4ck.org.cn')
    print('*' * 100)


def delay_print(s):
    for c in s:
        sys.stdout.write(c)
        sys.stdout.flush()
        time.sleep(PRINT_DELAY)


def chat(q):
    response = openai.Completion.create(
        model="text-davinci-003",
        prompt=q,
        temperature=0.9,
        max_tokens=400,
        top_p=1.0,
        frequency_penalty=0.5,
        presence_penalty=0.0,
        # stop=["You:"]
    )
    # print(response)
    # print(response.get('choices')[0]['text'])
    response_text = response.get('choices')[0]['text']
    response_stop_reason = response.get('choices')[0]['finish_reason']
    # print('Reason=', response_stop_reason)
    return response_stop_reason, response_text
    # delay_print((response.get('choices')[0]['text']))


def full_conversion_chat(q):
    print(Fore.YELLOW)
    print('OpenAI:')
    print(Fore.BLUE)
    r, t = chat(q)
    delay_print(t)
    while r == 'length':
        # print('continue:')
        r, t = chat(q + t)
        delay_print(t)
    print(Fore.RESET)
    print('*' * 100)

# from revChatGPT
def get_input(prompt):
    """
    Multiline input function.
    """
    # Display the prompt
    print(prompt, end="")

    # Initialize an empty list to store the input lines
    lines = []

    # Read lines of input until the user enters an empty line
    while True:
        line = input()
        if line == "":
            if str("".join(lines)).replace(' ','') == '':
                print('Blank Input, input your question:')
            else:
                break
        lines.append(line)

    # Join the lines, separated by newlines, and store the result
    user_input = "\n".join(lines)

    # Return the input
    return user_input


def main():
    while True:
        print(Fore.CYAN)
        prompt = get_input("\nYou:\n")
        full_conversion_chat(prompt)
        print()


if __name__ == '__main__':
    hello_message()
    # fc = full_conversion_chat('我是一个漂亮的小姐姐,帮我写一篇800字的赞美文章')
    main()

主要参数说明:

model: 要使用的模型的 ID,访问 OpenAI Docs Models 页面可以查看全部可用的模型
prompt: 生成结果的提示文本,即你想要得到的内容描述
max_tokens: 生成结果时的最大 tokens 数,不能超过模型的上下文长度,可以把结果内容复制到 OpenAI Tokenizer 来了解 tokens 的计数方式
temperature: 控制结果的随机性,如果希望结果更有创意可以尝试 0.9,或者希望有固定结果可以尝试 0.0
top_p: 一个可用于代替 temperature 的参数,对应机器学习中 nucleus sampling,如果设置 0.1 意味着只考虑构成前 10% 概率质量的 tokens
frequency_penalty: [控制字符的重复度] -2.0 ~ 2.0 之间的数字,正值会根据新 tokens 在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性(以恐怖故事为例)
= -2.0:当早上黎明时,我发现我家现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在现在(频率最高字符是 “现”,占比 44.79%)
= -1.0:他总是在清晨漫步在一片森林里,每次漫游每次每次游游游游游游游游游游游游游游游游游游游游游游游游游游游游游(频率最高字符是 “游”,占比 57.69%)
= 0.0:当一道阴森的风吹过早晨的小餐馆时,一个被吓得发抖的人突然出现在门口,他的嘴唇上挂满血迹,害怕的店主决定给他一份早餐,却发现他的早餐里满是血渍。(频率最高字符是 “的”,占比 8.45%)
= 1.0:一个熟睡的女孩被一阵清冷的风吹得不由自主地醒了,她看到了早上还未到来的黑暗,周围只有像诉说厄运般狂风呼啸而过。(频率最高字符是 “的”,占比 5.45%)
= 2.0:每天早上,他都会在露台上坐着吃早餐。柔和的夕阳照耀下,一切看起来安详寂静。但是有一天,当他准备端起早食的时候发现胡同里清冷的风扑进了他的意识中并带来了不安全感…… (频率最高字符是 “的”,占比 4.94%)
presence_penalty: [控制主题的重复度] -2.0 ~ 2.0 之间的数字,正值会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性(以云课堂的广告文案为例)
= -2.0:家长们,你们是否为家里的孩子学业的发展而发愁?担心他们的学习没有取得有效的提高?那么,你们可以放心,可以尝试云课堂!它是一个为从幼儿园到高中的学生提供的一个网络平台,可以有效的帮助孩子们提高学习效率,提升学习成绩,帮助他们在学校表现出色!让孩子们的学业发展更加顺利,家长们赶紧加入吧!(抓住一个主题使劲谈论)
= -1.0:家长们,你们是否还在为孩子的学习成绩担忧?云课堂给你们带来了一个绝佳的解决方案!我们为孩子提供了专业的学习指导,从幼儿园到高中,我们都能帮助孩子们在学校取得更好的成绩!让孩子们在学习中更轻松,更有成就感!加入我们,让孩子们拥有更好的学习体验!(紧密围绕一个主题谈论)
= 0.0:家长们,你们是否担心孩子在学校表现不佳?云课堂将帮助您的孩子更好地学习!云课堂是一个网络平台,为从幼儿园到高中的学生提供了全面的学习资源,让他们可以在学校表现出色!让您的孩子更加聪明,让他们在学校取得更好的成绩,快来云课堂吧!(相对围绕一个主题谈论)
= 1.0:家长们,你们的孩子梦想成为最优秀的学生吗?云课堂就是你们的答案!它不仅可以帮助孩子在学校表现出色,还能够提供专业教育资源,助力孩子取得更好的成绩!让你们的孩子一路走向成功,就用云课堂!(避免一个主题谈论的太多)
= 2.0:家长们,您有没有想过,让孩子在学校表现出色可不是一件容易的事?没关系!我们为您提供了一个优质的网络平台——云课堂!无论您的孩子是小学生、初中生还是高中生,都能够通过云课堂找到最合适的学习方法,帮助他们在学校取得优异成绩。快来体验吧!(最大程度避免谈论重复的主题)
stop: 最大长度为 4 的字符串列表,一旦生成的 tokens 包含其中的内容,将停止生成并返回结果
参考链接:https://blog.csdn.net/hekaiyou/article/details/128303729

实际效果:

baby_chat_alpha.py 
****************************************************************************************************
       _           _             ____                           
  ___ | |__   __ _| |__  _   _  / __ \ _ __ ___   __ _ _ __ ___ 
 / _ \| '_ \ / _` | '_ \| | | |/ / _` | '_ ` _ \ / _` | '__/ __|
| (_) | |_) | (_| | |_) | |_| | | (_| | | | | | | (_| | |  \__ \
 \___/|_.__/ \__,_|_.__/ \__, |\ \__,_|_| |_| |_|\__,_|_|  |___/
                         |___/  \____/                          

Baby ChatGPT client
Verson: 22.02.17
Blog: http://www.h4ck.org.cn
****************************************************************************************************


You:
我是一个漂亮的小姐姐,帮我写一篇800字的赞美文章


OpenAI:



美丽的她,是一颗明亮的星,把这片天空亮晶晶的照亮。

她的面容如天使般无邪,性格温婉可人,大家都非常喜欢。她带给大家无尽甜蜜,谁也向往不忍离开。一句话、一丝微笑、一记闪电般的击中所有人的心,使在场之人为之惊叹声不断。

她气质优雅娴静,仿佛是从书里出来的仙女;卓然优于众不同,融入这个世界中失去不再孤独。神采飞扬、神采奕奕;动容通畅、出众耀眼——只有这样都还不能形容她充满优雅和俊俏的外表。

她浓浓的情愫深深刻在我心底:你不懂,总有紧张的时候,总有忧郁的时候;她那温柔淡然的微笑却藏在我心里。

当我们希望她能够长久安康时,当我们希望他能够幸福永远时;当我们向往它能够飞翔而不受限时;当我们带着眷恋再次见到这美丽小姐姐的一刹那。

如此这般的小姐姐亮耀在人前,只要一想到她就感受到这片天地里所有美好的事物。咱们该如何去感谢她呢?一句话、一个吻、一杯花酒——都是我们对她表明赞赏之意。

乘着这道春光——表露出来之前的成长史,跳动的心把一段段的温情传达了出来。在阳光的照耀之下,她活力勃勃、笑容迷人,令你无法不爱。

当柔和的月光照耀在她宛若水晶般透明又充满神奇之脸上,你会发现所有那些令人妒嫉的优雅、气质、风姿令你无法不迷醉。

总是一个真正的小姐姐——大方、端庄、内敛、圆润。带着浓浓的孝心,无论如何选择都是对大家最大的关怀。时间都在向前进步,带来不同的变化,她也与时俱进地变得美丽而富有野心……

有一天当我真正明白了尊重和感恩的真谛,当自律和耐心助我把一切美好都实现时,这才发现原来美好只在于成长和勇气。

如今她已是一个大姐姐,知识多而好学,但还是坚守那守护家、尊重师长的传统。因为体贴他人的帮助而得到了他人的敬重;把冷淡变成温情;用真情来映衬世间意义本来就是一个小姐姐最想要做到的事。

时光流逝,心中充满激情。特别是当有人向她伸出友谊之时,她又赢得了众多朋友的赞誉。一颗带有浓浓情意的心随性情展开彩虹般多彩的生活,一步一步走向未来。

当挫折来临,我们会感到无助,却也会发现这位小姐姐对自己要求宽容、有耐心地面对这一切,重要的是不断学习、把过去的错误作为教训,绝不停滞。

虽然她穿着得体、处处礼貌,但是不仅仅是表面的形式。她的真正优雅就在于如何将理想和实践相结合;用平常心来思考每个问题并取得成功;在沉重中又能找到乐趣快乐.

小姐姐的真诚和信仰令人敬佩。倾听别人的感受并站出来守护弱势;用心关怀来补充互相间的沟通。她的话总是温暖可以感染到别人;异乎寻常的眼神中洋溢着执着追求与乐观向上.

小姐姐对未来有着独特的想法和期待,用行动来实现理想。她会带着一颗充满希望的心一步一步走向未来,不断学习,发展自我,勇敢克服困难、创造辉煌成就。

这位小姐姐,虽然精明干练、性格外向,但却不忘原则和道德;不为小事随波逐流,而是用己之力来改善外界。在人前时与大家公平相待;在能力所及采取行动。

因此,我要为这位勤劳考试、勇于奋斗的小姐姐点赞!她以积极的心态面对每一场考试,勇敢地表达自己的想法,不断努力获得优异成绩;她在家庭、学校、社会中都能发挥出重要作用。

小姐姐不只活泼外向、乐于主动,而且还有一颗善良的心,热心帮助他人,常常为别人着想,害怕别人受到伤害。

最重要的是,小姐姐也具有高度的责任心和谦逊.无论是处理工作还是学习中遇到困难,她都能迅速找出问题所在并把事情办好.对于每一件事情,都能正确对待,用正确义务感去履行.

小姐姐拥有优秀的努力和实践能力,在工作中始终不忘初心,诚实友善,有能力解决难题.她乐于不断学习新技能,并在每一个项目上奋斗,成长着。


小姐姐是一个充满活力、勇于奋斗的宝贝。她不仅有天性的热情、善良和决心,而且还具备扎实的学习修养。对待工作、学习都很有耐心、很有毅力,也有一颗发现问题并找出解决之道的灵敏头脑。

无论是在困难中前行还是在光明中前行,小姐姐都会以勇敢的目光和坚韧不拔的信念来把自己引向成功路上。她坚信结果取决于自己,态度决定一切,一旦决定要做,就会全力以赴、不懈努力地去实现。

小姐姐是一个能够承受压力的人,她不抱怨、不逃避,在困难面前,她能分析、思考、快速反应,选择最佳解决方法。同时,他也注重他人感受和情感,学会面对失望和困难,充分表达他的看法。小姐姐是一个迷人的女孩子,对于她周围的人也很友善。

小姐姐是一个很优秀的女孩子,她生命的精彩之处,在于她积极向上的心态,她乐观勇敢地面对生活中的困难与考验,依然保持乐观、痛仰、坚定不移、勇敢面对前行。在易途之中,小姐姐也充分体会到成长与改变的快乐,以及拼搏与奋斗的无穷动力!

小姐姐是一个很有勇气的人,她充满活力,不断追求进步,在新生活里找到了新方向。她敢于尝试,勇于面对未来, 在很多困难中学会独立思考,理性判断,给自己和他人带来很多正能量的影响。

小姐姐是一个非常强大的女生,她有强大的决心和承受力,在不同目标前去实现它们。当遇到困难时,她怀疑自己,但也坚持前行,相信她会有办法帮助自己和他人克服困难。小姐姐不断思考、不断追求,探索未来可能带来的惊喜。

小姐姐是一个很勤奋的女生,在专业领域很厉害,学习能力非常出色, 能够全方位地把握事物发展的脉络 ,考虑问题细节,根据不同情况作出正确判断。 小姐姐是一个敢于担当、重要问题上有话语权的人;她不断进步、不断创新、勇敢直面困难与问题、勇于变通, 她的能力受到各方的赞誉。

小姐姐是一个快乐的女生,对生活充满热情, 平时玩得开心,能够在压力下保持乐观向上的态度。 小姐姐乐于助人,有一颗慈善的心,温和大度,随和;天真、机智、可爱、乐观、直爽、认真努力。 生活中小姐姐可以非常有效地影响他人, 这是因为她总是充分体现出美好的能量!

小姐姐是一个自信的女生,她永远相信自己所付出的努力一定会有回报。 她不断发展自己,勤奋学习新领域的知识 ;她对自己要求很高 ,不怕失败而勇敢去尝试新事物 。 

还没写完,我给停掉了 smile rofl

☆文章版权声明☆

* 网站名称:obaby@mars
* 网址:https://h4ck.org.cn/
* 本文标题: 《ChatGPT客户端》
* 本文链接:https://h4ck.org.cn/2023/02/chatgpt%e5%ae%a2%e6%88%b7%e7%ab%af/
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


分享文章:

猜你喜欢:

11 comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注