StronLu commited on
Commit
a67da8b
1 Parent(s): ae40818

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -26
app.py CHANGED
@@ -1,8 +1,10 @@
1
- import openai
2
  import os
3
  import gradio as gr
 
4
 
5
- openai.api_key = os.environ.get("OPENAI_API_KEY")
 
 
6
 
7
  class Conversation:
8
  def __init__(self, prompt, round):
@@ -14,39 +16,22 @@ class Conversation:
14
  def ask(self, question):
15
  try:
16
  self.messages.append({"role": "user", "content": question})
17
- response = openai.ChatCompletion.create(
18
- model="gpt-3.5-turbo",
19
- messages=self.messages,
20
- temperature=0.5,
21
- max_tokens=2048,
22
- top_p=1,
23
- )
24
  except Exception as e:
25
  print(e)
26
  return e
27
 
28
- message = response["choices"][0]["message"]["content"]
29
  self.messages.append({"role": "assistant", "content": message})
30
 
31
  if len(self.messages) > self.round * 2 + 1:
32
  text = self._build_message(self.messages)
33
- #print (text)
34
- #print ("=====summarize=====")
35
- summarize = self.summarize(text)
36
- #print (summarize)
37
- #print ("=====summarize=====")
38
  self.messages = []
39
- self.messages.append({"role": "system", "content": summarize})
40
  return message
41
 
42
- def summarize(self, text, max_tokens=200):
43
- response = openai.Completion.create(
44
- model = "text-davinci-003",
45
- prompt = text + "\n\n请总结一下上面User和Assistant聊了些什么,限制100字以内:\n",
46
- max_tokens = max_tokens,
47
- )
48
- return response["choices"][0]["text"]
49
-
50
  def _build_message(self, messages):
51
  text = ""
52
  for message in messages:
@@ -56,7 +41,6 @@ class Conversation:
56
  text += "Assistant : " + message["content"] + "\n\n"
57
  return text
58
 
59
-
60
  prompt = """你是一个大数据和AI领域的专家,用中文回答大数据和AI的相关问题。你的回答需要满足以下要求:
61
  1. 你的回答必须是中文
62
  2. 回答限制在200个字以内
@@ -64,7 +48,6 @@ prompt = """你是一个大数据和AI领域的专家,用中文回答大数据
64
 
65
  conv = Conversation(prompt, 3)
66
 
67
-
68
  def answer(question, history=[]):
69
  history.append(question)
70
  message = conv.ask(question)
 
 
1
  import os
2
  import gradio as gr
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM
4
 
5
+ model_name = "huggingface_model_name" # 将此处替换为你想使用的模型的名称
6
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
7
+ model = AutoModelForCausalLM.from_pretrained(model_name)
8
 
9
  class Conversation:
10
  def __init__(self, prompt, round):
 
16
  def ask(self, question):
17
  try:
18
  self.messages.append({"role": "user", "content": question})
19
+ input_text = self._build_message(self.messages)
20
+ encoded_input = tokenizer.encode(input_text + tokenizer.eos_token, return_tensors='pt')
21
+ output = model.generate(encoded_input, max_length=200, temperature=0.5)
22
+ message = tokenizer.decode(output[:, encoded_input.shape[-1]:][0], skip_special_tokens=True)
 
 
 
23
  except Exception as e:
24
  print(e)
25
  return e
26
 
 
27
  self.messages.append({"role": "assistant", "content": message})
28
 
29
  if len(self.messages) > self.round * 2 + 1:
30
  text = self._build_message(self.messages)
 
 
 
 
 
31
  self.messages = []
32
+ self.messages.append({"role": "system", "content": text})
33
  return message
34
 
 
 
 
 
 
 
 
 
35
  def _build_message(self, messages):
36
  text = ""
37
  for message in messages:
 
41
  text += "Assistant : " + message["content"] + "\n\n"
42
  return text
43
 
 
44
  prompt = """你是一个大数据和AI领域的专家,用中文回答大数据和AI的相关问题。你的回答需要满足以下要求:
45
  1. 你的回答必须是中文
46
  2. 回答限制在200个字以内
 
48
 
49
  conv = Conversation(prompt, 3)
50
 
 
51
  def answer(question, history=[]):
52
  history.append(question)
53
  message = conv.ask(question)