Composer 安装chat-gpt类库进行调用。需要小火箭~

主要是进行对话

安装说明

composer require code-lives/chat-gpt

Laravel 操作方式 使用 Redis 存储聊天记录


$uid = "1"; //要求是字符串

$redis_key = "chat_record"  .  $uid;

$content = "还有哪些优点"; //提问内容

$chat = Redis::get($redis_key);

if (!$chat) {

$chatArray = [['role' => 'user', 'content' => $content]];

} else {

$chatArray = unserialize($chat);

$chatArray[] = ['role' => 'user', 'content' => $content];

}

$chat = new \ChatGpt\Chat\ChatGpt('key值');

$data = $chat->QuestionAndAnswer($uid, $chatArray);

if (isset($data['choices'])) {

$chatArray[] = ['role' => 'assistant', 'content' => $data['choices'][0]['message']['content']];

}

Redis::setex($redis_key, 3600, serialize($chatArray));

echo  $data['choices'][0]['message']['content'];

在 Laravel 视图层展示可能标签丢失 {{$data}} 转换 {!!$data!!}

代码块如何实现在 html 和 README 文件类似效果

代码块 就是下面颜色部分包围的,突出显示。在html 需要特殊处理


$chat = new \ChatGpt\Chat\ChatGpt('key值');

$data = $chat->QuestionAndAnswer($uid, $chatArray);

$content = $chat->WebFormat($data['choices'][0]['message']['content']);

html 代码 进行处理代码块,加上以下这些就行


<link  rel="stylesheet"  href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/styles/default.min.css"  />

<script  src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>

<script>

hljs.initHighlightingOnLoad();

</script>

聊天记录存入 mysql 格式如下

问答数据存取顺序注意。用户提问 存入,chatgpt 返回答案存入。看你怎么操作了。


    id 自增

    uid 用户uid

    role 角色 用户=user chatgpt = assistant

    content 内容

    create_time int

    读取出来的数据如下

$chatArray=[
    [
    'role'=>'user',
    'content'=>'Laravel 有什么优点',
    ],
    [
    'role'=>'assistant',
    'content'=>'有****优点',
    ],
    [
    'role'=>'user',
    'content'=>'还有吗?'
    ],
    [
    'role'=>'assistant',
    'content'=>'还有****',
    ]
];

chatArray 格式说明

第一次用户提问


$chatArray=[
    [
    'role'=>'user',
    'content'=>'Laravel 有什么优点',
    ]
];

第二次用户提问,包含了 第一次 chatgpt 回复的内容.如果没有可能上下文丢失,匹配不到最佳内容


$chatArray=[
    [
    'role'=>'user',
    'content'=>'Laravel 有什么优点',
    ],
    [
    'role'=>'assistant',
    'content'=>'有****优点',
    ],
    [
    'role'=>'user',
    'content'=>'还有吗?'
    ]
];
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!