mayzinoo commited on
Commit
64ac0ad
·
verified ·
1 Parent(s): b1d7b45

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -19
app.py CHANGED
@@ -98,27 +98,30 @@ Do not summarize. Only copy from the context.
98
 
99
  }
100
 
101
- def generate_output(prompt_type, query, retriever, llm):
102
- # Try to extract SOL code
103
- sol_match = re.search(r"\bG\.[A-Z]+\.\d+\b", query)
104
- matched_code = sol_match.group(0) if sol_match else None
 
105
 
106
- if matched_code:
107
- # Retrieve and filter by metadata
108
- all_docs = retriever.vectorstore._collection.get(include=['documents', 'metadatas'])
109
- filtered = []
110
- for doc_text, metadata in zip(all_docs['documents'], all_docs['metadatas']):
111
- if metadata.get('standard') == matched_code:
112
- filtered.append(doc_text)
113
 
114
- context = "\n\n".join(filtered)
115
- else:
116
- # fallback to semantic retrieval
117
- docs = retriever.get_relevant_documents(query)
118
- context = "\n\n".join([doc.page_content for doc in docs])
 
 
 
 
 
119
 
120
- chain = LLMChain(llm=llm, prompt=templates[prompt_type])
121
- return chain.run({"context": context, "query": query})
122
 
123
 
124
 
@@ -137,6 +140,6 @@ with gr.Blocks() as demo:
137
  output = gr.Textbox(label="Generated Output", lines=12, interactive=True)
138
  btn = gr.Button("Generate")
139
 
140
- btn.click(fn=generate_output, inputs=[prompt_type, query], outputs=output)
141
 
142
  demo.launch()
 
98
 
99
  }
100
 
101
+ def generate_prompt_output(prompt_type, query, retriever, llm):
102
+ try:
103
+ import re
104
+ sol_match = re.search(r"\bG\.[A-Z]+\.\d+\b", query)
105
+ matched_code = sol_match.group(0) if sol_match else None
106
 
107
+ if matched_code:
108
+ all_docs = retriever.vectorstore._collection.get(include=['documents', 'metadatas'])
109
+ filtered = []
110
+ for doc_text, metadata in zip(all_docs['documents'], all_docs['metadatas']):
111
+ if metadata.get('standard') == matched_code:
112
+ filtered.append(doc_text)
 
113
 
114
+ context = "\n\n".join(filtered)
115
+ else:
116
+ docs = retriever.get_relevant_documents(query)
117
+ context = "\n\n".join([doc.page_content for doc in docs])
118
+
119
+ chain = LLMChain(llm=llm, prompt=templates[prompt_type])
120
+ return chain.run({"context": context, "query": query}).strip()
121
+
122
+ except Exception as e:
123
+ return f"❌ Error: {str(e)}"
124
 
 
 
125
 
126
 
127
 
 
140
  output = gr.Textbox(label="Generated Output", lines=12, interactive=True)
141
  btn = gr.Button("Generate")
142
 
143
+ btn.click(fn=generate_prompt_output, inputs=[prompt_type, query], outputs=output)
144
 
145
  demo.launch()