如何将上面的代码封装成组件
时间: 2024-05-14 11:16:32 浏览: 90
将上面的代码封装成组件可以让其更加方便地被其他程序调用,下面是一个简单的封装示例:
```python
import openai
import streamlit as st
class ChatGPT:
def __init__(self, api_key, model_engine, prompt):
openai.api_key = api_key
self.model_engine = model_engine
self.prompt = prompt
def generate_response(self, message):
response = openai.Completion.create(
engine=self.model_engine,
prompt=f"{self.prompt}{message}",
temperature=0.5,
max_tokens=2048,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
return response.choices[0].text.strip()
# 使用 Streamlit 框架展示 ChatGPT 组件
def main():
st.title("ChatGPT Demo")
api_key = st.secrets["openai_api_key"]
model_engine = "davinci"
prompt = "The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nUser: Hello, how are you?\nAI: I'm doing great, thanks for asking. How can I help you today?\n"
chatbot = ChatGPT(api_key, model_engine, prompt)
st.text("AI: " + chatbot.generate_response("Hello"))
if __name__ == "__main__":
main()
```
在这个示例中,我们将 ChatGPT 封装成了一个类,其中包含了初始化函数 `__init__` 和生成回复函数 `generate_response`。在 `__init__` 函数中,我们传入了 OpenAI API Key、模型引擎和对话起始语句。在 `generate_response` 函数中,我们传入用户输入的消息,然后调用 OpenAI API 生成回复。
最后,我们使用 Streamlit 框架展示 ChatGPT 组件,调用 `generate_response` 函数生成 AI 的回复,并将其展示在页面上。通过这种方式,我们可以将 ChatGPT 封装成一个可复用的组件,让其他程序可以很方便地调用它。
阅读全文