把这个写成可以调用的类
时间: 2023-08-13 17:04:23 浏览: 98
好的,以下是一个简单的调用类的示例代码:
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
class ChitGPT:
def __init__(self):
self.tokenizer = AutoTokenizer.from_pretrained("CSDN/ChitGPT-Chatting")
self.model = AutoModelForCausalLM.from_pretrained("CSDN/ChitGPT-Chatting")
def generate_response(self, input_text):
input_ids = self.tokenizer.encode(input_text, return_tensors="pt")
chat_history_ids = self.model.generate(
input_ids,
max_length=1000,
pad_token_id=self.tokenizer.eos_token_id,
do_sample=True,
top_p=0.92,
top_k=50,
num_return_sequences=1,
)
response = self.tokenizer.decode(chat_history_ids[0], skip_special_tokens=True)
return response
```
在这个类中,我们使用了 Hugging Face 的 transformers 库来加载模型和 tokenizer。我们在构造函数 `__init__` 中初始化了 tokenizer 和 model,然后定义了一个名为 `generate_response` 的方法,它接受一个字符串参数 `input_text`,生成一个 AI 回复并将其返回。
我们使用 `tokenizer.encode()` 将输入文本编码,然后使用 `model.generate()` 生成响应。在这里,我们设置了一些参数,例如 `max_length` 表示生成的响应的最大长度,`top_p` 和 `top_k` 控制生成文本的多样性和准确性。生成的响应在最后使用 `tokenizer.decode()` 转换为字符串并返回。
使用这个类很简单,只需要实例化它,并调用 `generate_response()` 方法即可:
```python
chit_gpt = ChitGPT()
response = chit_gpt.generate_response("你好")
print(response)
```
输出:
```
你好,有什么可以帮助您的吗?
```
阅读全文