# 什么是FunctionGraph
华为云的FunctionGraph基于事件驱动的函数托管计算服务,只需编写业务代码和设置运行条件,无需配置和管理服务器等基础设施,函数即可以免运维、高可靠的方式运行,另外支持多种语言的编写
# 如何使用FunctionGraph调用chatGPT
支持chatGPT调用的方式有很多,但是因为chatGPT不能在中国访问,所以我把业务代码部署在华为云的拉美-圣保罗一区域,也可以部署在其他非国内的区域进行chatGPT的调用
## 先来看看简单的示例
```
# -*- coding:utf-8 -*-
import os
import openai
def handler (event, context):
openai.api_key = "此处填写openai的api-key"
def ask_chatgpt(q):
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": q}]
)
#print(completion)
print(completion.get("choices")[0]["message"]["content"])
ask_chatgpt("此处填写要提问的内容")
```
通过这个简单的示例就可以实现chatgpt的调用,那么如果这样编写的话就会暴露我们的api-key,所以把api-key设置成为加密的环境变量,这样也方便进行api-key的管理,不需要每次都要修改业务代码重新部署,那么改进后的代码就如下:
```
# -*- coding:utf-8 -*-
import os
import openai
def handler (event, context):
openai.api_key = context.getUserData("openai-keys")
def ask_chatgpt(q):
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": q}]
)
#print(completion)
print(completion.get("choices")[0]["message"]["content"])
ask_chatgpt("你好")
```
## 看一下运行结果
那么现在我们就开始部署,首先需要把代码打包所需的依赖,华为云推荐的是使用HuaweiCloudEulerOS操作系统,安装之后就会有**默认的python**,所以需要做的只是pip install xxx,代码中需要的依赖有os以及openai,所以只需安装这两个依赖进行打包即可,在HuaweiCloudEulerOS操作系统安装好python的依赖之后进入依赖的下载目录使用命令进行打包,并把依赖包复制到本地电脑进行上传即可
**操作命令**:
```
pip3 install os --root /usr/lib/python3/dist-packages
pip3 install openai --root /usr/lib/python3/dist-packages
cd /usr/lib/python3/dist-packages/
zip -rq text.zip *
```
*完成依赖的制作后进入正题*
进入函数工作流点击创建函数,选择对应的编程语言以及版本进行创建,在进入函数里编写业务代码点击部署即可运行
**业务代码如下**
```
# -*- coding:utf-8 -*-
import os
import openai
def handler (event, context):
openai.api_key = context.getUserData("openai-keys")
def ask_chatgpt(q):
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": q}]
)
#print(completion)
print(completion.get("choices")[0]["message"]["content"])
ask_chatgpt("你好")
```
部署完成之后点击测试即可运行,更多关于FunctionGraph以后再做介绍