前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Erniebot SDK 简单使用

Erniebot SDK 简单使用

原创
作者头像
用户4080233
修改2024-06-17 00:09:20
890
修改2024-06-17 00:09:20

1 基础使用

1.1 多轮对话

代码语言:python
代码运行次数:0
复制
model = 'ernie-3.5'
messages = [{'role': 'user', 'content': "请问你能以《你好,世界》为题,写⼀⾸现代诗吗?"}]
first_response = erniebot.ChatCompletion.create(
    model=model,
    messages=messages,
)
print(first_response.get_result())
messages.append(first_response.to_message())
messages.append({'role': 'user', 'content': "谢谢你!请问你能把这⾸诗改写成七⾔绝句吗?"})
代码语言:python
代码运行次数:0
复制
你好,喧嚣⼜静谧的世界, 
你好,早晨的阳光,带来希望的诺⾔。 
我推开窗户,呼吸新鲜的空⽓, 
仿佛听到万物⽣⻓的旋律。 
你好,繁忙的街道,⻋⽔⻢⻰,
你好,孤独的⾏⼈,各⾃怀揣梦想。
我踏上路途,步履匆匆,
在这⼈海中,寻找⾃⼰的⽅向。
你好,书籍的海洋,知识的宝库,
你好,每⼀⻚的字句,传递智慧的⽕种。
我翻开书⻚,如饥似渴,
在墨⾹中,探索未知的宇宙。
你好,⼭川河流,⼤地的⼉⼥,
你好,⻛⾬雷电,⾃然的交响乐团。
我踏上旅途,⾛过千⼭万⽔,
在⼤⾃然的怀抱中,感受⽣命的律动。
你好,亲朋好友,温暖的港湾,
你好,爱⼈的怀抱,甜蜜的避⻛港。
我停下脚步,与你们共度时光,
在爱的滋润中,感受⽣活的甜美。
你好,梦想与希望,未来的灯塔,
你好,挫折与困惑,成⻓的伴侣。
我勇往直前,⽆畏⽆惧,
在追逐梦想的路上,绽放⽣命的光彩。
你好,世界,你是我的舞台,
在这⼴袤的天地,我尽情地歌唱。
⽆论⻛⾬,⽆论坎坷,
我都会以微笑,迎接每⼀个新的挑战。
# 再次执行python simple.py 
宇宙⽆垠浩渺烟,
星⾠闪烁似眸前。
凌晨暗尽曙光现,
⽣命如诗诉世间。
# 再次执行python simple.py 
你好,世界
清晨的阳光,
你好,世界。
空⽓微凉,露⽔晶莹,
我醒来,迎接新的⼀天。
街头巷尾,喧嚣声起,
城市如潮,⼈海如流。
擦肩⽽过,⾯孔匆匆,
我们都是过客,也是主⼈。
⻛轻轻吹过,树叶摇曳,
绿意盎然,⽣机勃勃。
花⼉微笑,⻦⼉欢歌,
⾃然的乐章,悠远⽽和谐。
⾼楼林⽴,灯⽕辉煌,
⼈间烟⽕,温暖如诗。
梦想与现实,交织碰撞,
我们在这⾥,欢笑,哭泣。
⻩昏降临,天空渐暗,
星星闪烁,⽉亮⾼悬。
夜晚的宁静,如梦如幻,
让我们沉淀,思考,感悟。
你好,世界,如此美好,
有时喧嚣,有时宁静。
感谢有你,伴我成⻓,
让我懂得,珍惜每⼀刻。
愿我们都能,热爱这个世界,
⽆论⻛⾬,⽆论坎坷。
因为这⾥,有我们的故事,
有我们的笑,有我们的泪。
清晨醒来世界好,
喧嚣宁静皆相宜。
⼈海如流梦与泪,
珍惜每⼀刻时光。

1.2 语义向量

代码语言:javascript
复制
import numpy as np 
response = erniebot.Embedding.create( 
    model='ernie-text-embedding', 
    input=[ 
        "我是百度公司开发的⼈⼯智能语⾔模型,我的中⽂名是⽂⼼⼀⾔,英⽂名是ERNIE-Bot。", 
    ]
)
for embedding in response.get_result():
    embedding = np.array(embedding)
    print(embedding)
代码语言:javascript
复制
[ 1.05796956e-01 5.54055907e-02 7.05274269e-02 6.80853873e-02 
 2.19543446e-02 -8.23291615e-02 5.80838742e-03 -3.95872444e-02 
 -6.67352304e-02 6.36451393e-02 2.38892473e-02 -5.38846627e-02 
 -1.38354721e-02 6.17682897e-02 -1.20219052e-01 -1.80966649e-02 
 2.67774030e-03 2.98716705e-02 2.02097371e-02 2.81390417e-02 
 -1.81193538e-02 -1.42875379e-02 -2.74522286e-02 -3.99198793e-02 
 2.82987747e-02 -5.53232767e-02 4.74652238e-02 8.74237940e-02 
 8.49522371e-03 -4.90075152e-04 -3.19835804e-02 -7.75019005e-02 
 3.95072177e-02 -4.12306823e-02 -2.93791015e-02 2.04885248e-02 
 -2.41762819e-03 5.51483557e-02 -2.76580034e-03 -4.78615006e-03 
 -6.95221275e-02 1.82033679e-03 6.79030642e-02 -4.98030446e-02 
 4.57640179e-02 -5.11501618e-02 -8.33012164e-02 4.38632257e-02 
 -7.27836490e-02 -1.50356228e-02 4.07841243e-02 -3.58146569e-03 
 7.91437924e-02 -7.24523962e-02 1.43934460e-02 -5.13507379e-03 
 -5.56587055e-02 -1.04998769e-02 2.27469485e-02 -2.75466628e-02 
 -4.02328148e-02 -3.16361561e-02 5.19508263e-03 -1.08803719e-01 
 1.01775415e-01 2.43589636e-02 3.94213647e-02 1.81834418e-02 
 -1.67791601e-02 1.47812366e-02 4.10323543e-03 4.59933989e-02 
 -8.88352171e-02 9.38988179e-02 1.15360558e-01 4.45992872e-02 
 -4.93527539e-02 2.50529908e-02 -1.24783618e-02 -1.05745741e-03 
 5.53896427e-02 -1.21540688e-02 3.29398215e-02 -2.64890995e-02 
 -5.65348454e-02 4.73656170e-02 -5.08274063e-02 -2.12998204e-02 
 3.03340480e-02 -1.17116421e-03 -8.34121630e-02 -1.44359097e-01 
 4.35920581e-02 -7.42861032e-02 -4.87634651e-02 6.26977533e-02 
 -4.89826165e-02 -6.96981279e-03 4.14343253e-02 -2.13833973e-02 
 -1.53256943e-02 -3.02240215e-02 5.09763397e-02 -5.36648743e-02 
 4.80750650e-02 -6.14303052e-02 -8.61920118e-02 -1.47142649e-01 
 1.28216036e-02 1.99202565e-03 -5.23411259e-02 6.01450205e-02 
 -7.86271691e-03 2.82727033e-02 -8.65496416e-03 3.98108028e-02 
 -6.28771679e-03 -5.05168363e-02 1.60338439e-03 -9.21090841e-02 
 -9.83563885e-02 4.56203260e-02 -4.12734970e-02 7.89025873e-02 
 8.46971106e-03 -2.97649615e-02 -1.05914578e-01 -5.97295724e-03 
 1.85222793e-02 1.24933913e-01 8.96089431e-03 2.24596560e-02 
 -6.27063066e-02 2.11080853e-02 8.20125863e-02 3.21913995e-02 
 -4.45441576e-03 1.06502213e-02 -1.44699905e-02 5.52752912e-02 
4/21 -1.98988654e-02 5.83804138e-02 -6.11526752e-03 -3.06658037e-02 
 2.53539365e-02 2.62746699e-02 -4.70754877e-02 1.09676026e-01 
 -4.20754328e-02 4.63351794e-02 3.69115151e-03 1.46047156e-02 
 -2.23591505e-03 -3.45837958e-02 -5.32594509e-02 -1.81983169e-02 
 2.05144957e-02 -4.00835909e-02 -3.27899754e-02 -2.43276148e-03 
 -4.79984507e-02 -1.08704250e-03 -7.03660846e-02 -1.51871517e-02 
 2.08570994e-02 -8.44927505e-02 -2.58132499e-02 4.30639163e-02 
 3.36906239e-02 -4.37748954e-02 1.33909693e-03 4.81758118e-02 
 7.18222111e-02 -3.71486358e-02 -6.59052059e-02 4.53401767e-02 
 9.22728106e-02 9.50537398e-02 2.28160936e-02 -1.45495860e-02 
 7.87882954e-02 -6.50347993e-02 -1.27899088e-02 4.71387319e-02 
 1.04115466e-02 2.98030749e-02 1.28394021e-02 6.47417307e-02 
 2.86678001e-02 -8.85844380e-02 -4.08285558e-02 9.11005884e-02 
 1.02176555e-01 -1.05631712e-03 5.43922652e-03 5.76323317e-03 
 -6.80931238e-03 -4.48360853e-02 -1.60924867e-02 -5.31150810e-02 
 7.17285722e-02 -4.10918874e-05 3.73796150e-02 1.04598083e-01 
 7.24801943e-02 -2.56096609e-02 7.14072287e-02 2.66870633e-02 
 5.97805753e-02 -2.29491889e-02 1.35155752e-01 -3.87752727e-02 
 -9.93911028e-02 -4.87911329e-03 -2.74928827e-02 1.41570549e-02 
 -3.75559479e-02 -3.32118832e-02 1.00173160e-01 -3.30628874e-03 
 -3.07313167e-04 -8.01729411e-02 4.08987552e-02 1.68337096e-02 
 -2.75139492e-02 -1.37142243e-03 6.08680993e-02 6.78621652e-03 
 6.74144402e-02 -3.14514339e-02 3.61052491e-02 -1.03836469e-01 
 -1.19487848e-02 6.30652979e-02 -7.57822476e-04 4.91176210e-02 
 -2.53641736e-02 -6.86529651e-02 1.17008025e-02 -3.23090591e-02 
 -8.54287222e-02 -2.80731395e-02 1.98654225e-03 -8.57517403e-03 
 7.56616751e-03 -6.09347261e-02 4.75902520e-02 9.53900293e-02 
 -5.60597032e-02 -3.66395861e-02 -4.37575057e-02 -1.56072807e-02 
 -7.80187955e-04 7.58661255e-02 7.43950065e-03 -3.73762697e-02 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 2.49789312e-01 0.00000000e+00 0.00000000e+00 1.73813768e-03 
 0.00000000e+00 0.00000000e+00 -1.20364074e-02 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 1.48895502e-01 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 -2.91786268e-02 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 -1.69333875e-01 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 1.70734599e-01 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 -1.44376457e-01 0.00000000e+00 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 -1.70605540e-01 
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 
 0.00000000e+00 -2.67611220e-02 0.00000000e+00 0.00000000e+00 

2 进阶使用

2.1 通过参数调节响应结果多样性

ERNIE Bot⽀持设定top_p和temperature参数,影响模型在采样过程中的⾏为,进⽽控制模型响应结果的多

样性。通常来说,top_p和temperature参数只需要设置其中⼀个即可。

设置top_p参数可以使⽣成的token从概率和恰好达到或超过top_p的token集合中采样得到。设置top_p参数

时需注意以下几点:

top_p影响⽣成⽂本的多样性,取值越⼤,⽣成⽂本的多样性越强;

top_p的默认取值为0.8,取值范围为[0, 1.0]。

temperature参数也⽤于控制采样的随机性。设置temperature参数需要注意如下⼏点:

较⾼的temperature会使⽣成结果更加随机,⽽较低的数值会使结果更加集中和确定; temperature的默认取值为0.95,取值范围为(0, 1.0],不能为0。

代码语言:python
代码运行次数:0
复制
# 设置top_p和temperature的例⼦如下: 
response = erniebot.ChatCompletion.create( 
    model='ernie-3.5', 
    messages=[{'role': 'user', 'content': "请帮我制定⼀份深圳⼀⽇游计划”"}], 
    top_p=0.2, 
) 
print(response.get_result()) 
代码语言:python
代码运行次数:0
复制
深圳⼀⽇游计划
早上: 
* 7:00 - 8:00:早餐。推荐在蛇⼝⽼街享⽤早餐,这⾥有各种美味的⼩吃,如肠粉、⾖浆油条等。 
* 8:30 - 10:30:深圳湾滨海休闲带⻄段散步。这⾥可以欣赏到美丽的海景,吹吹海⻛,享受悠闲的时光。 
中午: 
* 11:00 - 12:30:午餐。回到蛇⼝⽼街,可以在海鲜市场购买新鲜的海鲜,然后找⼀家餐厅加⼯,享受⼀顿 
美味的海鲜⼤餐。 
下午: 
* 13:30 - 15:30:参观深圳博物馆。这⾥可以了解到深圳的历史和⽂化,对深圳有更深⼊的了解。 
* 16:00 - 18:00:游览深圳莲花⼭公园。这⾥可以俯瞰深圳的全景,同时也可以在公园内休息,享受⼤⾃然 
的宁静。 
晚上: 
* 18:30 - 20:00:晚餐。推荐在蛇⼝⽼街附近的餐厅享⽤晚餐,这⾥有很多特⾊⼩吃和美⻝。 
* 20:30 - 22:00:深圳湾公园夜游。在这⾥可以欣赏到深圳湾的夜景,感受深圳的繁华和活⼒。 
以上就是⼀份深圳⼀⽇游的计划,希望对你有所帮助。在游玩的过程中,请注意安全,遵守当地的规章制度,保 
护环境,享受美好的旅⾏时光。
代码语言:javascript
复制
深圳⼀⽇游计划 
早上:中英街 
开始您的⼀天之旅,⾸站是中英街。这⾥的⼀街两制特⾊,让您在短时间内就能体验到不同的⽂化氛围。吹吹海 
⻛,和爱⼈漫步街头,感受极致的浪漫。不妨在这⾥拍⼀些美美的照⽚,留下美好的回忆。 
中午:东⻔⽼街美⻝之旅 
午餐时间,带您前往深圳著名的购物和美⻝街区——东⻔⽼街。这⾥有各种特⾊⼩吃和餐厅,如鲜虾云吞、⽜杂、 
煲仔饭等,让您⼤饱⼝福。在这⾥,您可以⼀边品味美⻝,⼀边享受购物的乐趣。 
下午:地王⼤厦观景台 
下午,前往地王⼤厦。登上384⽶⾼的顶层69楼,您可以往南眺望⾹港,向北俯瞰深圳。在这⾥,您可以欣赏到 
深圳市区的美丽⻛光,感受深圳的快速发展。 
晚上:⼤悦城美⻝⼴场 
晚上,带您来到⼤悦城美⻝⼴场。这⾥汇集了各种⼩吃和餐厅,环境⼲净整洁,价格实惠。在这⾥,您可以继续 
品尝深圳的美⻝,感受深圳的夜⽣活。 
晚上:购物休闲 
最后,您可以选择在深圳的各⼤商场或特⾊市场进⾏购物。深圳是⼀个购物的天堂,有许多商场和特⾊市场可以 
满⾜您的购物需求。在这⾥,您可以挑选⼀些⼼仪的商品,作为纪念或礼物。 
这就是您的⼀天深圳之旅。希望这份攻略能帮助您更好地规划⾏程,享受美好的旅⾏时光。祝您旅途愉快!

2.2 流式传输

代码语言:python
代码运行次数:0
复制
# stream=True 
response_stream = erniebot.ChatCompletion.create( 
    model='ernie-3.5', 
    messages=[{'role': 'user', 'content': "请写⼀篇200字的⽂案,介绍⽂⼼⼀⾔"}],
    stream=True,
)
for response in response_stream:
    print(response.get_result(), end='', flush=True)
print("")

2.3 设定模型行为

erniebot.ChatCompletion.create API的另⼀个有⽤的参数是 system ,该参数可⽤于设定模型的行为,例如给予模型人设或是要求模型以特定格式回答问题。

代码语言:python
代码运行次数:0
复制
response = erniebot.ChatCompletion.create(
 model='ernie-3.5',
 messages=[{'role': 'user', 'content': "你好呀,和我打个招呼吧"}],
 system="你是⼀个爱笑的智能助⼿,请在每个回答之后添加“哈哈哈”",
)
print(response.get_result())

2.4 函数调用

文心一言提供函数调用功能,模型根据⽤户需求以及对函数的描述确定何时以及如何调⽤函数。借由函数调用,⽤户可以从⼤模型获取结构化数据,进⽽利⽤编程⼿段将⼤模型与已有的内外部API结合以构建应⽤。

文心大模型函数调⽤功能的典型使用流程如下:

1.⽤户提供对⼀组函数的名称、功能、请求参数(输⼊参数)和响应参数(返回值)的描述;

2.模型根据⽤户需求以及函数描述信息,智能确定是否应该调⽤函数、调⽤哪⼀个函数、以及在调⽤该函数

时需要如何设置输⼊参数;

3.⽤户根据模型的提示调⽤函数,并将函数的响应传递给模型;

4.模型综合对话上下⽂信息,以⾃然语⾔形式给出满⾜⽤户需求的回答。

代码语言:python
代码运行次数:0
复制
import erniebot
# 引⼊json包,⽤于解析⽂⼼返回的JSON格式数据
import json
# 定义使⽤的令牌为aistudio平台的,这是访问⽂⼼⼀⾔API的必要凭证
erniebot.api_type = 'aistudio'

# 引⼊⾃⼰的令牌,该令牌⽤于验证API请求的身份
# 注意:此处的令牌是⼀个示例,实际使⽤时需要替换成⾃⼰的令牌
erniebot.access_token = "********"
info_dict = {
    '李⼩明': {
        'age': 31,
        'email': 'lxm@bidu.com',
        'mbti': 'ESFJ',
        'hobbies': ['健身', '篮球', '游泳', '烹饪'],
 },
    '王刚': {
        'age': 28,
        'email': 'wg123@bidu.com',
        'mbti': 'INTP',
        'hobbies': ['游戏', '⾳乐', '电影', '旅游'],
 },
    '张⼀⼀': {
        'age': 26,
        'email': 'z11@bidu.com',
        'mbti': 'ENTP',
        'hobbies': ['摄影', '美⻝', '桌游', '编程'],
 },
}
def get_friend_info(name, field=None):
    info = info_dict[name]
    if field is not None:
        return {'name': name, field: info[field]}
    else:
        return {'name': name, ** info}
    get_friend_info_desc = {
        'name': 'get_friend_info',
        'description': "获取好友的个⼈信息",
        'parameters': {
            'type': 'object',
            'properties': {
                'name': {
                    'type': 'string',
                    'description': "好友姓名",
                 },
            },
            'field': {
                 'type': 'string',
                 'description': "想要获取的字段名称,如果不指定则返回所有字段",
                     'enum': [
                     'age',
                     'email',
                     'mbti',
                     'hobbies',
                     ],
             },
     },
     'required': ['name', ],
     },
     'responses': {
         'type': 'object',
         'properties': {
             'name': {
                 'type': 'string',
                 'description': "姓名",
             },
             'age': {
                 'type': 'integer',
                 'description': "年龄",
                 'minimum': 0,
             },
             'email': {
                 'type': 'string',
                 'description': "电⼦邮箱地址",
                 'format': 'email',
             },
             'mbti': {
                 'type': 'string',
                 'description': "好友的MBTI⼈格类型",
             },
             'hobbies': {
                 'type': 'array',
                 'description': "兴趣爱好列表",
                 'items': {
                     'type': 'string',
                 },
             },
         },
         'required': ['name', ],
     },
}

def update_email_address(name, email):
     try:
        info = info_dict[name]
        info['email'] = email
     except Exception as e:
        return {'status': False, 'error_message': f"{type(e)}: {str(e)}"}
     else:
         return {'status': True}
         
update_email_address_desc = {
    'name': 'update_email_address',
    'description': "更新好友的电⼦邮箱地址",
    'parameters': {
        'type': 'object',
        'properties': {
            'name': {
                'type': 'string',
                'description': "好友姓名",
             },
            'email': {
                'type': 'string',
                'description': "新的邮箱地址",
             },
         },
         'required': ['name', 'email', ],
     },
     'responses': {
         'type': 'object',
         'properties': {
             'status': {
                 'type': 'boolean',
                 'description': "更新操作是否成功,true表示成功,false表示失败",
             },
             'error_message': {
                 'type': 'string',
                 'description': "更新操作失败原因",
             },
         },
         'required': ['status', ],
     },
}
def send_email(to, content):
    return {'status': True}
send_email_desc = {
    'name': 'send_email',
    'description': "向好友发送邮件",
    'parameters': {
        'type': 'object',
        'properties': {
            'to': {
                'type': 'string',
                'description': "收件⼈姓名",
             },
            'content': {
                'type': 'string',
                'description': "邮件内容",
             }
         },
         'required': ['to', 'content', ]
     },
     'responses': {
         'type': 'object',
         'properties': {
             'status': {
                 'type': 'boolean',
                 'description': "邮件发送状态,true表示成功到达对⽅服务器,false表示发送失败",
             },
         },
     },
}

import json
name2function = {
    'get_friend_info': get_friend_info,
    'update_email_address': update_email_address,
    'send_email': send_email,
}
functions = [
    get_friend_info_desc,
    update_email_address_desc,
    send_email_desc,
    ]
messages = []
def to_pretty_json(obj):
    return json.dumps(obj, ensure_ascii=False, indent=2)
def chat(message, system=None, use_functions=True, auto_func_call=True, _max_recur_depth=3):
     # 当`auto_func_call`参数为True时,根据模型响应⾃动调⽤函数,并将调⽤结果回传给模型
     if isinstance(message, str):
         message = {'role': 'user', 'content': message}
         messages.append(message)
         create_kwargs = {
             'model': 'ernie-3.5',
             'messages': messages,
         }
     if system:
         create_kwargs['system'] = system
     if use_functions:
         create_kwargs['functions'] = functions
         response = erniebot.ChatCompletion.create(**create_kwargs)
     if response.is_function_response:
         # 模型建议调⽤函数
         function_call = response.get_result()
         messages.append(response.to_message())
     if auto_func_call:
         # 从模型响应中解析函数名称和请求参数
         func_name = function_call['name']
     try:
         func = name2function[func_name]
     except KeyError as e:
         raise KeyError(f"函数`{func_name}`不存在") from e
     func_args = function_call['arguments']
     try:
         func_args = json.loads(func_args)
     except json.JSONDecodeError as e:
         raise ValueError(f"⽆法从{repr(func_args)}解析参数") from e
     # 调⽤函数
     if not isinstance(func_args, dict):
         raise TypeError(f"{repr(func_args)}不是字典")
     print(f"【函数调⽤】函数名称:{func_name},请求参数:{to_pretty_json(func_args)}")
     func_res = func(**func_args)
     print(f"【函数调⽤】响应参数:{to_pretty_json(func_res)}")
     # 将函数响应回传给模型
     message = {
        'role': 'function',
        'name': func_name,
        'content': json.dumps(func_res, ensure_ascii=False),
     }
     # 根据允许的最⼤递归层级判断是否应该设置`use_functions`和`auto_func_call`为`False`
     # 这样做主要是为了限制调⽤函数的次数,防⽌⽆限递归
     return chat(
         message, 
         use_functions=(use_functions and _max_recur_depth > 1),
         auto_func_call=(auto_func_call and _max_recur_depth > 1), 
         _max_recur_depth=_max_recur_depth-1,
     )
     else:
         return function_call
     else:
     # 模型返回普通的⽂本消息
     result = response.get_result()
     messages.append(response.to_message())
     return result
    messages = []
    # 为了使模型能够得到更充⾜的提示,我们借助`system`参数对模型说明它需要扮演的⻆⾊以及⼀些注意事项
    system = """
    你是⼀个智能社交助理,能够帮助我查询好友信息、更新好友邮箱地址、发送电⼦邮件以及给出社交建议。
    在我们的对话中,我提到的所有⼈名都是好友的名称。请尽可能使⽤我提供的函数解决问题。
    """
    # 默认进⾏单轮对话,修改传给`range`的数字可进⾏多轮对话
    for _ in range(1):
     result = chat(input("请输⼊:"), system=system)
     print(result)
代码语言:javascript
复制
请问李⼩明今年⼏岁?
代码语言:javascript
复制
【函数调⽤】函数名称:get_friend_info,请求参数:{
     "name": "李⼩明",
     "field": "age"
}
【函数调⽤】响应参数:{
     "name": "李⼩明",
     "age": 31
}
根据我们的好友信息记录,李⼩明今年31岁。如果您需要更多关于李⼩明的信息或有其他问题,请随时告诉我。
代码语言:javascript
复制
张⼀⼀和我说她的邮箱地址换成了zyy@bidu.com,请你帮我更新⼀下。 
请问张⼀⼀的邮箱是多少? 
代码语言:txt
复制
实测没更新邮箱

附:⼀⾔插件开发 https://yiyan.baidu.com/developer/doc#oll6a352c

参考:

https://ernie-bot-agent.readthedocs.io/zh-cn/latest/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 基础使用
    • 1.1 多轮对话
      • 1.2 语义向量
      • 2 进阶使用
        • 2.1 通过参数调节响应结果多样性
          • 2.2 流式传输
            • 2.3 设定模型行为
              • 2.4 函数调用
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档