Spaces:
Sleeping
Sleeping
| """Display components for LegisQA""" | |
| import streamlit as st | |
| from legisqa_local.utils.text import escape_markdown, replace_legis_ids_with_urls | |
| from legisqa_local.utils.usage import display_api_usage | |
| from legisqa_local.utils.formatting import render_retrieved_chunks | |
| from legisqa_local.config.models import PROVIDER_MODELS | |
| def render_example_queries(): | |
| """Render example queries in an expander""" | |
| with st.expander("Example Queries"): | |
| st.write( | |
| """ | |
| ``` | |
| What are the themes around artificial intelligence? | |
| ``` | |
| ``` | |
| Write a well cited 3 paragraph essay on food insecurity. | |
| ``` | |
| ``` | |
| Create a table summarizing major climate change ideas with columns legis_id, title, idea. | |
| ``` | |
| ``` | |
| Write an action plan to keep social security solvent. | |
| ``` | |
| ``` | |
| Suggest reforms that would benefit the Medicaid program. | |
| ``` | |
| """ | |
| ) | |
| def render_response( | |
| response: dict, | |
| model_info: dict, | |
| provider: str, | |
| should_escape_markdown: bool, | |
| should_add_legis_urls: bool, | |
| tag: str | None = None, | |
| ): | |
| """Render a RAG response with usage information and retrieved chunks""" | |
| response_text = response["aimessage"].content | |
| if should_escape_markdown: | |
| response_text = escape_markdown(response_text) | |
| if should_add_legis_urls: | |
| response_text = replace_legis_ids_with_urls(response_text) | |
| with st.container(border=True): | |
| if tag is None: | |
| st.write("Response") | |
| else: | |
| st.write(f"Response ({tag})") | |
| st.info(response_text) | |
| display_api_usage(response["aimessage"], model_info, provider, tag=tag) | |
| render_retrieved_chunks(response["docs"], tag=tag) | |