当前位置:首页|资讯|ChatGPT

v语言如何发出curl请求,如何进行chatGPT调用

作者:漂流四海发布时间:2023-03-13

原标题:v语言如何发出curl请求,如何进行chatGPT调用

调用结果第一次,让ai帮忙写一个小渔材的故事

调用第二次,让chatGPT3帮忙写作文

调用第三次,这是用v语言写的脚本,重点是刚入坑还不到一天时间

亲的们,事实证明,v语言真的很优秀,我才刚入坑不到一天的时间,就学会了,如何调用ai机器人,如何与chatGPT3接口进行通信.这个例子在全网目前暂时都是没有的,在此之前,我主要语言是php,调用Ai用的是curl命令.

如:

-H 'Content-Type: application/json' \

-H "Authorization: Bearer sk-hZwoLYz***************B5L" \

-d '{

"model": "text-davinci-003",

"prompt": "请写一篇小渔村的故事",

"max_tokens": 4000,

"temperature": 1.0

}' \

--insecure

而在php中,因为天朝防火墙的原因,所以,很难调用成功.当然,php中写curl调用也忒简单了.

use didiyuesao\com\config;

// 举个例子

class gpt

{

// 优先重载

public static function ask($txt)

{

$api_key = config\gpt::api_key();

$header = [];

$header[] = "Content-Type: application/json";

$header[] = "Authorization: Bearer $api_key";

$req = [];

$req['model'] = 'text-davinci-003';

// $req['model'] = 'text-davinci-002';

// $req['model'] = 'text-curie-001';

// $req['model'] = 'text-ada-001';

// $req['model'] = 'text-babbage-001';

$req['prompt'] = $txt;

$req['max_tokens'] = 1000;

$req['temperature'] = 0.8;

// var_dump($req,json_encode($req),$header,$turl);exit;

$opt = [CURLOPT_TIMEOUT => 5, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_RETURNTRANSFER => 1];

$opt[CURLOPT_POSTFIELDS] = json_encode($req);

$res = myhttp::curl($turl, 'get', '', $header, $opt);

if ($res) {

return json_decode($res, 1);

}

}

public static function exec($txt)

{

$api_key = config\gpt::api_key();

$cli = <<

-H "Content-Type: application/json" \

-H "Authorization: Bearer {$api_key}" \

-d '{

"model": "text-davinci-003",

"prompt": "{$txt}",

"max_tokens": 1000,

"temperature": 1.0

}' \

--insecure

doc;

$res=shell_exec($cli);

if ($res) {

return json_decode($res, 1);

}

}

}

其中,用到了两种调用方式,一种是原生的脚本调用,但是性能不好.,另一种,性能好的是用shell_exec($cli),但是这个,会导致服务器超时,难以接受.多调几次就没得玩了.性能最好的是passthru($cli);

做为一个老的PHPer,苦于PHP的性能问题久矣,刚好这两天不是学了v语言吗,

让我们试一试,vlang是否真的不错?

vlang之v语言安装与编译过程都不复杂不会的同学可以问我,刚入坑

用V语言调用Ai机器人,连接chatGPT接口之demo

源代码如下:

// 以下是vlang,和golang有点像,但不是,而是V语言,

// 说实话,V语言编程真的是超级简单又优雅

import net.http

import x.json2 as json

import strings

fn main() {

mytxt:="请写一篇小渔村的故事 obj := {

"model":json.Any("text-davinci-003"),

"prompt":json.Any(mytxt),

"max_tokens":1000,

"temperature":1.0

}

enc:=json.Encoder{

escape_unicode: false

}

mut sb := strings.new_builder(20)

defer {

unsafe { sb.free() }

}

enc.encode_value(obj, mut sb)!

// print("obj to string :\r\n")

// print(sb.str())

// print("\r\n")

mut h:=http.Header{}

h.set(.content_type,"application/json")

h.set(.accept,"*/*")

// h.set(.content_type,"application/x-www-form-urlencoded")

h.set(.authorization,"Bearer "+api_key)

// print(h)

mut cc:=http.FetchConfig{}

cc.url=chatgpt_url

cc.header=h

cc.method=.post

// cc.data = '{"model":"text-davinci-003","prompt":"请写一首诗,赞美我的祖国","max_tokens":4000,"temperature":1.0}'

cc.data = sb.str()

// print(cc)

res:=http.fetch(cc)!

print(mytxt+"\r\n")

print(res)

}

vlang的基础类库也很简单在vlang目录下的lib+example都是用V语言写的

用vlang直接编译生成静态的二进制ai脚本,类似于ai.exe

如果你也刚好在寻找PHP的升级替代方案,不妨学习一下v语言,它比golang简单得多,当然,go语言会遇到的坑,换成rust语言也是一样会遇到,所以,换成v语言也是会遇到 ,但是v语言上学特别快啊,只要看vlang目录的example+lib文件,里面有几百个脚本都是用v语言写的最好的demo,从这里开始,你就能感觉到v语言的语法,到底有多么的精简,没有多余的表达,当然,最最最通俗易懂的,还是php语言,关键是php的底层重构不了,所以,就算用上php8性能也是不如静态编译语言,所以,要么学golang,要么学python,要么学c语言,但是c语言成长,真的是路线特别长,就算学了好久,也还是很难做出自己满意的东西.

但是v语言不一样,它可以直接吸收c语言源代码,直接运行,也能直接与go语言互相转换,还能直接与js语言互相转换,也能互相调用.

v语言(vlang)能出二进制exe文件,也能出dll共享模块 ,dll也能被PHP加载后,调用.

欢迎各种精力充沛的小伙伴,一起入坑哦,我现在是刚入坑2天的状态,感觉很亢奋呐,今晚要不要失眠呢?[灵光一闪]


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1