Replace spo faq with qa

This commit is contained in:
xiangjinyu 2025-02-13 11:56:34 +08:00
parent d96862b52a
commit 6f7863647d
4 changed files with 24 additions and 24 deletions

View file

@ -15,7 +15,7 @@ def load_yaml_template(template_path: Path) -> Dict:
if template_path.exists():
with open(template_path, "r", encoding="utf-8") as f:
return yaml.safe_load(f)
return {"prompt": "", "requirements": "", "count": None, "faq": [{"question": "", "answer": ""}]}
return {"prompt": "", "requirements": "", "count": None, "qa": [{"question": "", "answer": ""}]}
def save_yaml_template(template_path: Path, data: Dict) -> None:
@ -23,9 +23,9 @@ def save_yaml_template(template_path: Path, data: Dict) -> None:
"prompt": str(data.get("prompt", "")),
"requirements": str(data.get("requirements", "")),
"count": data.get("count"),
"faq": [
{"question": str(faq.get("question", "")).strip(), "answer": str(faq.get("answer", "")).strip()}
for faq in data.get("faq", [])
"qa": [
{"question": str(qa.get("question", "")).strip(), "answer": str(qa.get("answer", "")).strip()}
for qa in data.get("qa", [])
],
}
@ -126,51 +126,51 @@ def main():
if "current_template" not in st.session_state or st.session_state.current_template != template_name:
st.session_state.current_template = template_name
st.session_state.faqs = template_data.get("faq", [])
st.session_state.qas = template_data.get("qa", [])
# Edit template sections
prompt = st.text_area("Prompt", template_data.get("prompt", ""), height=100)
requirements = st.text_area("Requirements", template_data.get("requirements", ""), height=100)
# FAQ section
st.subheader("FAQ Examples")
# qa section
st.subheader("Q&A Examples")
# Add new FAQ button
if st.button("Add New FAQ"):
st.session_state.faqs.append({"question": "", "answer": ""})
# Add new qa button
if st.button("Add New Q&A"):
st.session_state.qas.append({"question": "", "answer": ""})
# Edit FAQs
new_faqs = []
for i in range(len(st.session_state.faqs)):
st.markdown(f"**FAQ #{i + 1}**")
# Edit qas
new_qas = []
for i in range(len(st.session_state.qas)):
st.markdown(f"**QA #{i + 1}**")
col1, col2, col3 = st.columns([45, 45, 10])
with col1:
question = st.text_area(
f"Question {i + 1}", st.session_state.faqs[i].get("question", ""), key=f"q_{i}", height=100
f"Question {i + 1}", st.session_state.qas[i].get("question", ""), key=f"q_{i}", height=100
)
with col2:
answer = st.text_area(
f"Answer {i + 1}", st.session_state.faqs[i].get("answer", ""), key=f"a_{i}", height=100
f"Answer {i + 1}", st.session_state.qas[i].get("answer", ""), key=f"a_{i}", height=100
)
with col3:
if st.button("🗑️", key=f"delete_{i}"):
st.session_state.faqs.pop(i)
st.session_state.qas.pop(i)
st.rerun()
new_faqs.append({"question": question, "answer": answer})
new_qas.append({"question": question, "answer": answer})
# Save template button
if st.button("Save Template"):
new_template_data = {"prompt": prompt, "requirements": requirements, "count": None, "faq": new_faqs}
new_template_data = {"prompt": prompt, "requirements": requirements, "count": None, "qa": new_qas}
save_yaml_template(template_path, new_template_data)
st.session_state.faqs = new_faqs
st.session_state.qas = new_qas
st.success(f"Template saved to {template_path}")
st.subheader("Current Template Preview")
preview_data = {"prompt": prompt, "requirements": requirements, "count": None, "faq": new_faqs}
preview_data = {"qa": new_qas, "requirements": requirements, "prompt": prompt}
st.code(yaml.dump(preview_data, allow_unicode=True), language="yaml")
st.subheader("Optimization Logs")

View file

@ -9,7 +9,7 @@ requirements: |
count: None
faq:
qa:
- question: |
If you follow these instructions, do you return to the starting point? Always face forward. Take 7 steps left. Take 2 steps backward. Take 7 steps backward. Take 7 steps backward. Take 3 steps forward.
Options:

View file

@ -6,7 +6,7 @@ requirements: |
count: None
faq:
qa:
- question: |
Write a modern sonnet about climate change
answer: |

View file

@ -29,7 +29,7 @@ def load_meta_data(k: int = SAMPLE_K):
qa = []
for item in data["faq"]:
for item in data["qa"]:
question = item["question"]
answer = item["answer"]
qa.append({"question": question, "answer": answer})