Sirus1 commited on
Commit
dab1590
·
1 Parent(s): e35df0e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -21
app.py CHANGED
@@ -6,7 +6,7 @@ import os
6
  import fitz
7
  import re
8
  import gradio as gr
9
-
10
 
11
 
12
 
@@ -64,16 +64,28 @@ llm = OpenAI(temperature=0.5,max_tokens=1024)
64
 
65
 
66
 
 
 
 
 
 
 
 
 
67
  def generate_answer(question):
68
- prompt='''
69
- 请根据给出的法律条文回答问题,给出适当的法律建议。回答时要说出你引用的法律条文是第几条,并说出引用的每一条是哪部法律中的。
70
- 引用的法律条文不要超过两条,回答尽量简明扼要
71
- 如果问题与搜索结果无关,就仅回答"该问题与青少年法律无关"即可。
72
- '''
73
  most_relevant_texts = vectordb.max_marginal_relevance_search(question, k=5)
 
74
  chain = load_qa_chain(llm)
75
  answer = chain.run(input_documents=most_relevant_texts, question=question+prompt)
76
- return answer
 
 
 
 
 
 
 
77
 
78
  def ask_api(question):
79
 
@@ -84,22 +96,40 @@ def ask_api(question):
84
 
85
 
86
 
87
- title = '青少年法律科普问答'
88
- description = """ 本bot旨在根据中华人民共和国的法律回答有关青少年的问题,目前囊括的法律有\n
89
- 《未成年人保护法》\n
90
- 《义务教育法》\n
91
- 《预防未成年人犯罪法》\n
92
- 《妇女儿童权益保护法》
93
- """
94
 
95
 
96
 
97
- gr.Interface(
98
- title=title,
99
- description=description,
100
- fn=ask_api,
101
- inputs=gr.Textbox(label="请输入与青少年法律相关的问题",lines=2),
102
- outputs=gr.outputs.Textbox(label="参考回答"),
103
- examples=[["未成年遭受网络欺凌该怎么办?"],['年满多少岁的儿童应当接受义务教育?'],['若发现离家出走的未成年人,应如何处理?']]).launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
 
105
 
 
6
  import fitz
7
  import re
8
  import gradio as gr
9
+ import time
10
 
11
 
12
 
 
64
 
65
 
66
 
67
+
68
+ prompt='''
69
+ 请根据给出的法律条文回答问题,给出适当的法律建议。回答时要说出你引用的法律条文是第几条,并说出引用的每一条是哪部法律中的。
70
+ 引用的法律条文不要超过两条,回答尽量简明扼要
71
+ 如果问题与搜索结果无关,就仅回答"该问题与青少年法律无关"即可。
72
+ '''
73
+
74
+
75
  def generate_answer(question):
76
+ start_time = time.time()
 
 
 
 
77
  most_relevant_texts = vectordb.max_marginal_relevance_search(question, k=5)
78
+ print(most_relevant_texts)
79
  chain = load_qa_chain(llm)
80
  answer = chain.run(input_documents=most_relevant_texts, question=question+prompt)
81
+
82
+ run_time = time.time() - start_time
83
+ return (answer,
84
+ '\n'.join([t.page_content for t in most_relevant_texts]),
85
+ run_time
86
+ )
87
+
88
+
89
 
90
  def ask_api(question):
91
 
 
96
 
97
 
98
 
 
 
 
 
 
 
 
99
 
100
 
101
 
102
+ with gr.Blocks() as demo:
103
+ gr.Markdown(
104
+ """
105
+ # 青少年法律科普问答
106
+ 本bot旨在根据中华人民共和国的法律回答有关青少年的问题,目前囊括的法律有
107
+
108
+ 《未成年人保护法》
109
+
110
+ 《义务教育法》
111
+
112
+ 《预防未成年人犯罪法》
113
+
114
+ 《妇女儿童权益保护法》
115
+ """)
116
+
117
+ with gr.Column():
118
+ text_input = gr.Textbox(label='请输入与青少年法律相关的问题')
119
+ text_button = gr.Button("提交")
120
+ gr.Examples(
121
+ [["未成年遭受网络欺凌该怎么办?"],['年满多少岁的儿童应当接受义务教育?'],['遇到离家出走的未成年应该如何处理?']],
122
+ [text_input],
123
+ label='示例问题'
124
+
125
+ )
126
+ text_output = [gr.Textbox(label='参考回答'),
127
+ gr.Textbox(label='相关法律原文'),
128
+ gr.Number(label="运行时长(s)")]
129
+
130
+
131
+ text_button.click(generate_answer, inputs=text_input, outputs=text_output)
132
+
133
+ demo.launch()
134
 
135