国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在PHP中對(duì)接openAI接口,PHP創(chuàng)建AI會(huì)話思路以及代碼講解

這篇具有很好參考價(jià)值的文章主要介紹了如何在PHP中對(duì)接openAI接口,PHP創(chuàng)建AI會(huì)話思路以及代碼講解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、 PHP調(diào)用OpenAI API的方法

1.如何注冊(cè) openAI 以及使用

https://platform.openai.com/account/api-keys 在這個(gè)地址進(jìn)行注冊(cè),但是需要翻墻,可自己查找國(guó)內(nèi)的試用地址。就不多贅述…

2.php 調(diào)用接口 (symfony框架)

php端代碼:

思路:前端通過(guò)一個(gè)圖標(biāo)入口,點(diǎn)擊后 發(fā)送請(qǐng)求,創(chuàng)建一個(gè)會(huì)話(也就是聊天室),并且把創(chuàng)建的這個(gè)會(huì)話 入庫(kù)。并且后端返回一個(gè)入庫(kù)生成的uuid,和默認(rèn)的消息會(huì)話返回給前端,前端暫時(shí)存放在 input 隱藏域中,以備后續(xù)使用。此時(shí)完成一個(gè)會(huì)話的連接和創(chuàng)建。
ps:前端發(fā)送請(qǐng)求前,需要做一些校驗(yàn),$this->verifySend(); 驗(yàn)證是否登錄,和發(fā)送請(qǐng)求的頻率
直接上代碼如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-801050.html

<?php
namespace LdWxappPlugin\Api\Resource\Chatapi;
use ApiBundle\Api\ApiRequest;
use ApiBundle\Api\Resource\AbstractResource;
use ApiBundle\Api\Annotation\ApiConf;
use Ramsey\Uuid\Uuid;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;

class Chatapi extends AbstractResource
{
   
    public function add(ApiRequest $request): array
    {
   
        $uuid = $request->request->get('conversationId');
        // 沒(méi)有 uuid 就要新建會(huì)話,入庫(kù),有uuid 就直接打開(kāi)
        // 這里在頁(yè)面上做了一個(gè) 顯示隱藏效果 不刷新頁(yè)面的情況下,關(guān)閉側(cè)邊窗口,元素移除屏幕
        // 再次打開(kāi),有uuid ,直接讓元素 移回原來(lái)的尺寸 'right','-1000px' 'right','0px'
        if(empty($uuid)){
   
        	// 這里用它來(lái)區(qū)分是 右側(cè)側(cè)邊欄 還是 獨(dú)立網(wǎng)頁(yè)版
            $display = $request->request->get('display',0);
            // 入庫(kù)的會(huì)話名字 從側(cè)邊欄進(jìn)來(lái)的是 默認(rèn)對(duì)話,從網(wǎng)頁(yè)進(jìn)來(lái)的是 新建對(duì)話
            $conversationName = $request->request->get('conversationName','默認(rèn)對(duì)話');
            // 課程 ID 和 課程類型 這里可根據(jù)自己的需求傳遞不同參數(shù),這個(gè)課程ID 是為了跟蹤 根據(jù)哪一個(gè)課程,點(diǎn)擊聊天窗口的
            $sourceId = $request->request->get('sourceId');
            $sourceType = $request->request->get('sourceType');
    
            if (empty($sourceId) || empty($sourceType)){
   
                throw new BadRequestHttpException('sourceId或sourceType不能為空');
            }
            $currentUser = $this->getCurrentUser();
            // 生成 uuid ,uuid 是后端生成好,返回給前端,前端卸載 隱藏域里面,每次請(qǐng)求,用隱藏域里面的去做判斷。
            $random = 'lingdai'.microtime(true).rand(1000,9999);
            $conversationId = Uuid::uuid5(Uuid::NAMESPACE_OID,$random)->toString();
            $goods = $this->findGoodsByTargetIdAndType($sourceId,$sourceType);
            $conversationData = [
                'conversationId' => $conversationId,
                'conversationName' => $conversationName,
                'userId' => $currentUser->getId(),
                'display' => $display,
                'goodsId' => $goods['id'],
                'createdTime' => time()
            ]; 
            $insertResult = $this->getChatApiService()->createConversation($conversationData);
            if ($insertResult){
   
            // role : 返回給前端的默認(rèn)對(duì)話 可根據(jù)情況自行設(shè)置
                return [
                    'status'=> 'success',
                    'message'=> '創(chuàng)建成功',
                    'code'=> 1,
                    'data'=> [
                        'conversationId'=> $conversationId,
                        'conversationName'=> $conversationName,
                        'aiDocId'=>$goods['aiDocId'],
                        'id'=>$insertResult['id'],
                        'display'=>$insertResult['display'],
                        'goodsId'=>$insertResult['goodsId'],
                        'role' => [
                           [
                            'role' => 'AI',
                            'content' => "Hi:你好,哈哈哈哈哈".'</br>'.'123123123'
                           ]
                        ],
                    ]
                ];
            } else {
   
                return ['status'=> 'fail','message'=> '創(chuàng)建失敗','code'=> 0,'data'=> []];
            }
        }else{
   
            return [];
        }
    }

// 根據(jù) 傳過(guò)來(lái)的 課程ID 和 課程type 查詢數(shù)據(jù)庫(kù),查到對(duì)應(yīng)的商品ID 數(shù)據(jù)
    public function findGoodsByTargetIdAndType($sourceId,$sourceType)
    {
   
        if ($sourceType == "goods"){
   
            $goods = $this->getGoodsService()->getGoods($sourceId);
            return $goods;
        }
        $product = $this->getProductService()->getProductByTargetIdAndType($sourceId, $sourceType);

        $goods = $this->getGoodsService()->getGoodsByProductId($product['id']);
        return $goods;
    }
// 新建對(duì)話的 入庫(kù)完成!


//http://www.lingdaipc.win/lddev.php/chat/pcAI/index?chatId=684&uuid=3b9aad06-356e-5534-a8bf-4a98a95a7497&goodsId=3021
// 獨(dú)立的 PC 網(wǎng)頁(yè)版 查詢方法 根據(jù)上面 url中 傳遞的參數(shù) ,查詢對(duì)應(yīng)的 chatId的 的對(duì)話
    public function search(ApiRequest $request)
    {
   
        // 判斷 ID 是否存在,不存在 是獨(dú)立出來(lái)的窗口 存在是跳轉(zhuǎn)過(guò)來(lái)的
        $params = $request->query->all();
        $conditions = $this->filterParams($params);
        $conditions['display'] = 1;
        $currentUser = $this->getCurrentUser();
        $conditions['userIds'] = $currentUser['id'];
        list($offset, $limit) = $this->getOffsetAndLimit($request);
        $conversationTotal = $this->getChatApiService()->count($conditions);
        $searchResult = $this->getChatApiService()

到了這里,關(guān)于如何在PHP中對(duì)接openAI接口,PHP創(chuàng)建AI會(huì)話思路以及代碼講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用SSE技術(shù)調(diào)用OPENAI接口并實(shí)現(xiàn)流式輸出,用PHP語(yǔ)言實(shí)現(xiàn)

    作為AI語(yǔ)言模型服務(wù)提供商,OpenAI 提供了一系列的 API 接口,其中大部分需要通過(guò) HTTP 請(qǐng)求訪問(wèn)。對(duì)于大量數(shù)據(jù)的請(qǐng)求,傳統(tǒng)的同步請(qǐng)求會(huì)導(dǎo)致網(wǎng)絡(luò)響應(yīng)變慢,無(wú)法滿足實(shí)時(shí)數(shù)據(jù)處理和分析的需求。因此,為了優(yōu)化這些接口的調(diào)用效率,我們可以利用 SSE(Server Sent Events) 技術(shù)來(lái)

    2024年02月11日
    瀏覽(22)
  • php如何對(duì)接偽api

    php如何對(duì)接偽api

    在了解偽原創(chuàng)api的各種應(yīng)用形態(tài)之后,我們繼續(xù)探討智能寫(xiě)作背后的核心技術(shù)。需要說(shuō)明的是,智能寫(xiě)作和自然語(yǔ)言生成、自然語(yǔ)言理解、知識(shí)圖譜、多模算法等各類人工智能算法都有緊密的關(guān)聯(lián),在百度的智能寫(xiě)作實(shí)踐中,常根據(jù)實(shí)際需求將多個(gè)相關(guān)算法集成為具體的解決

    2024年02月12日
    瀏覽(17)
  • wonder trader cta仿真以及對(duì)接行情交易接口

    wonder trader cta仿真以及對(duì)接行情交易接口

    WonderTrader是一個(gè)基于 C++ 核心模塊的,適應(yīng)全市場(chǎng)全品種交易的,高效率、高可用的開(kāi)源量化交易開(kāi)發(fā)框架。 ??? 面向于專業(yè)機(jī)構(gòu)的整體架構(gòu) ??? 數(shù)十億級(jí)的實(shí)盤(pán)管理規(guī)模 ??? 從數(shù)據(jù)落地清洗、到回測(cè)分析、再到實(shí)盤(pán)交易、運(yùn)營(yíng)調(diào)度,量化交易所有環(huán)節(jié)全覆蓋。 ? 本文簡(jiǎn)

    2024年02月06日
    瀏覽(33)
  • AI繪畫(huà),Midjourney API 接口對(duì)接和使用

    AI繪畫(huà),Midjourney API 接口對(duì)接和使用

    項(xiàng)目背景 眾所周知,Midjourney并沒(méi)有提供任何的Api服務(wù),但是基于Midjourney目前的行業(yè)龍頭位置,很多企業(yè)以及個(gè)人會(huì)有相關(guān)的需求。TTApi平臺(tái)基于Midjourney現(xiàn)有功能整理出一套完整的可集成性高的服務(wù),如果你有類似的需求,那么恭喜你找到了正確的使用方式。 新用戶注冊(cè)免費(fèi)

    2024年04月15日
    瀏覽(30)
  • api接口如何有效對(duì)接

    api接口如何有效對(duì)接

    在平時(shí)工作中,經(jīng)常會(huì)遇到的一種場(chǎng)景是:A公司要對(duì)接B公司的API方法,這時(shí),A公司就要閱讀B公司的接口文檔,從接口文檔中找到自己需要對(duì)接的API,并根據(jù)接口文檔的要求,完成編碼工作,最終完成對(duì)接工作。 本篇是站在A公司的角度,去對(duì)接B公司API接口的實(shí)戰(zhàn)。 一般情

    2024年02月16日
    瀏覽(23)
  • PHP解析帶BOM頭的JSON數(shù)據(jù),對(duì)接他人接口的時(shí)候,使用json_decode(),返回null的問(wèn)題與解決方法

    PHP解析帶BOM頭的JSON數(shù)據(jù),對(duì)接他人接口的時(shí)候,使用json_decode(),返回null的問(wèn)題與解決方法

    在php開(kāi)發(fā)中會(huì)遇到和他人對(duì)接接口,對(duì)方使用json傳輸數(shù)據(jù),使用json_decode()函數(shù)卻無(wú)法將json數(shù)據(jù)轉(zhuǎn)換為數(shù)組。 先看封裝的代碼 這種對(duì)接post接口的封裝方法一般是沒(méi)有問(wèn)題的,但是我們打印$res的時(shí)候,會(huì)發(fā)現(xiàn)只會(huì)返回NULL。而打印$response的時(shí)候,是可以返回json字符串的。我們

    2024年02月06日
    瀏覽(18)
  • Python編程實(shí)現(xiàn)百度AI開(kāi)放平臺(tái)的接口對(duì)接方法,詳解和實(shí)踐指南

    Python編程實(shí)現(xiàn)百度AI開(kāi)放平臺(tái)的接口對(duì)接方法,詳解和實(shí)踐指南 引言 百度AI開(kāi)放平臺(tái)提供了豐富的人工智能接口,包括語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理等功能。本文將通過(guò)Python編程,詳解如何對(duì)接百度AI開(kāi)放平臺(tái)的接口,并提供實(shí)際代碼示例。 準(zhǔn)備工作 在開(kāi)始之前,我們

    2024年02月13日
    瀏覽(31)
  • 對(duì)接支付通道如何收費(fèi)?支付接口收費(fèi)標(biāo)準(zhǔn)

    對(duì)接支付通道如何收費(fèi)?支付接口收費(fèi)標(biāo)準(zhǔn)

    支付接口收費(fèi)標(biāo)準(zhǔn)是怎樣的 反映到平臺(tái)方來(lái)說(shuō),就是它的盈利模式,是維持企業(yè)生存,到發(fā)展壯大的根本保障。目前第三方支付平臺(tái)費(fèi)用有:手續(xù)費(fèi)、廣告費(fèi)、服務(wù)費(fèi)、沉淀資金的利息收入四種。 1、手續(xù)費(fèi) 手續(xù)費(fèi)是第三方支付平臺(tái)費(fèi)用的最傳統(tǒng)的盈利模式之一。即第三方支

    2024年02月16日
    瀏覽(20)
  • ChatGPT:2. 使用OpenAI創(chuàng)建自己的AI網(wǎng)站:1. 初探API

    ChatGPT:2. 使用OpenAI創(chuàng)建自己的AI網(wǎng)站:1. 初探API

    如果你還是一個(gè)OpenAI的小白,有OpenAI的賬號(hào),但想調(diào)用OpenAI的API搞一些有意思的事,那么這一系列的教程將仔細(xì)的為你講解如何使用OpenAI的API制作屬于自己的AI網(wǎng)站。博主只能利用下班時(shí)間更新,進(jìn)度慢,請(qǐng)海涵??。 ??1. OpenAI API的首頁(yè):https://platform.openai.com/ ??2. 查看自己

    2024年02月08日
    瀏覽(27)
  • 如何解決本地開(kāi)發(fā)調(diào)用OpenAI接口的問(wèn)題

    如何解決本地開(kāi)發(fā)調(diào)用OpenAI接口的問(wèn)題

    1.簡(jiǎn)單粗暴,懂的都懂 1.注冊(cè)Cloudflare,開(kāi)通AI網(wǎng)關(guān)功能(Beta功能,目前免費(fèi)) 2.使用AI網(wǎng)關(guān)地址替換官方接口地址,即可本地調(diào)用 3.在AI網(wǎng)關(guān)管理界面,還可以看到接口調(diào)用、tokens消耗、以及日志等情況,非常好用 1.查看Nginx版本和是否已配置stream模塊(Nginx版本需要在1.9.0以上,如

    2024年02月05日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包