Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e1fd164
chore: update the all config for instructions indexing
Mar 6, 2025
e5370b1
feat: instructions indexing and clean pipelien
Mar 6, 2025
0b2ee39
chore: update all config for instructions retrieval
Mar 6, 2025
04d09d5
feat: implement instruction retrieval pipeline
Mar 6, 2025
9ee8504
chore: update config.yaml of docker and k8s for instructions indexing…
Mar 6, 2025
5bbae31
feat: implement instructions service
Mar 6, 2025
acde028
feat: add instruction service into global
Mar 6, 2025
46152f2
feat: implement instruction endpoint
Mar 6, 2025
dd472d8
feat: trigger delete instruction from vector store when delete semantics
Mar 6, 2025
bacd07f
refactor: simplify the code base for deleting semantics
Mar 6, 2025
13c9016
feat: retrieve the default is true instructions
Mar 6, 2025
a21040b
chore: add a comment to explain default instruction and correct the d…
Mar 7, 2025
1388eae
feat: flatten the request questions to one-on-one question instructio…
Mar 7, 2025
0f8cfb9
feat: retrieve the instructions for ask process
Mar 7, 2025
c31477e
feat: correct the instruction format for prompt and fix the wrong pas…
Mar 7, 2025
37b5002
chore: set the pipeline config to default embedder
Mar 7, 2025
ca47341
chore: early return when document count is 0
Mar 7, 2025
0d2f5ec
feat: add test case for instructions indexing
Mar 7, 2025
c4e3087
feat: test case for instruction service
Mar 7, 2025
996cabb
chore: solve conflict and format the yaml file
Mar 11, 2025
48110cc
feat(wren-ai-service): Add Instructions Support to Evaluation Dataset…
Mar 13, 2025
d8abcfc
fix: missing initialization of _allow_instructions in AskPipeline
Mar 13, 2025
2338ef0
chore: remove default value for instructions
Mar 13, 2025
f734389
fix: test case
Mar 13, 2025
6598b4f
Merge branch 'main' into feat/instruction-pipeline-and-endpoints
cyyeh Mar 13, 2025
b999170
fix bug
cyyeh Mar 13, 2025
13c3c2f
feat: add instructions into sql generation reasoning pipe
Mar 13, 2025
aa534bf
feat: async to retrieve the default instructions
Mar 13, 2025
feb7e30
chore: expose settings in config.yaml
Mar 13, 2025
628c805
restructure sql_samples and instructions
cyyeh Mar 14, 2025
966b0ba
update
cyyeh Mar 14, 2025
afc13a4
Merge branch 'main' into feat/instruction-pipeline-and-endpoints
cyyeh Mar 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion deployment/kustomizations/base/cm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,12 @@ data:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -192,4 +198,9 @@ data:
langfuse_host: https://cloud.langfuse.com
langfuse_enable: true
logging_level: DEBUG
development: false
development: false
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
67 changes: 39 additions & 28 deletions docker/config.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,39 @@ type: llm
provider: litellm_llm
timeout: 120
models:
- model: gpt-4o-mini-2024-07-18
alias: default
api_base: https://api.openai.com/v1
kwargs:
temperature: 0
n: 1
# for better consistency of llm response, refer: https://platform.openai.com/docs/api-reference/chat/create#chat-create-seed
seed: 0
max_tokens: 4096
- model: gpt-4o-2024-08-06
api_base: https://api.openai.com/v1
kwargs:
temperature: 0
n: 1
# for better consistency of llm response, refer: https://platform.openai.com/docs/api-reference/chat/create#chat-create-seed
seed: 0
max_tokens: 4096
- model: o3-mini-2025-01-31
api_base: https://api.openai.com/v1
kwargs:
n: 1
seed: 0
max_completion_tokens: 4096
reasoning_effort: low
- model: gpt-4o-mini-2024-07-18
alias: default
api_base: https://api.openai.com/v1
kwargs:
temperature: 0
n: 1
# for better consistency of llm response, refer: https://platform.openai.com/docs/api-reference/chat/create#chat-create-seed
seed: 0
max_tokens: 4096
- model: gpt-4o-2024-08-06
api_base: https://api.openai.com/v1
kwargs:
temperature: 0
n: 1
# for better consistency of llm response, refer: https://platform.openai.com/docs/api-reference/chat/create#chat-create-seed
seed: 0
max_tokens: 4096
- model: o3-mini-2025-01-31
api_base: https://api.openai.com/v1
kwargs:
n: 1
seed: 0
max_completion_tokens: 4096
reasoning_effort: low

---
type: embedder
provider: litellm_embedder
models:
- model: text-embedding-3-large
alias: default
api_base: https://api.openai.com/v1
timeout: 120
- model: text-embedding-3-large
alias: default
api_base: https://api.openai.com/v1
timeout: 120

---
type: engine
Expand Down Expand Up @@ -129,6 +129,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -145,3 +151,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: false
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
56 changes: 28 additions & 28 deletions wren-ai-service/demo/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,33 +228,37 @@ def show_asks_results():
st.markdown("### Question")
st.markdown(f"{st.session_state['query']}")

st.markdown("### Retrieved Tables")
retrieved_tables = st.text_input(
"Enter the retrieved tables separated by commas, ex: table1, table2, table3",
st.session_state["retrieved_tables"],
key="retrieved_tables_input",
)
if st.session_state["asks_results_type"] == "MISLEADING_QUERY":
st.markdown(
"Misleading query detected. Please try again with a different query."
)
elif st.session_state["asks_results_type"] == "TEXT_TO_SQL":
st.markdown("### Retrieved Tables")
retrieved_tables = st.text_input(
"Enter the retrieved tables separated by commas, ex: table1, table2, table3",
st.session_state["retrieved_tables"],
key="retrieved_tables_input",
)

st.markdown("### SQL Generation Reasoning")
changed_sql_generation_reasoning = st.text_area(
"SQL Generation Reasoning",
st.session_state["sql_generation_reasoning"],
key="sql_generation_reasoning_input",
height=250,
on_change=on_change_sql_generation_reasoning,
)
st.markdown("### SQL Generation Reasoning")
changed_sql_generation_reasoning = st.text_area(
"SQL Generation Reasoning",
st.session_state["sql_generation_reasoning"],
key="sql_generation_reasoning_input",
height=250,
on_change=on_change_sql_generation_reasoning,
)

st.button(
"Regenerate SQL",
on_click=on_click_regenerate_sql,
args=(
retrieved_tables.split(", "),
changed_sql_generation_reasoning,
),
)
st.button(
"Regenerate SQL",
on_click=on_click_regenerate_sql,
args=(
retrieved_tables.split(", "),
changed_sql_generation_reasoning,
),
)

st.markdown("### SQL Query Result")
if st.session_state["asks_results_type"] == "TEXT_TO_SQL":
st.markdown("### SQL Query Result")
edited_sql = st.text_area(
label="SQL Query Result",
value=sqlparse.format(
Expand Down Expand Up @@ -283,10 +287,6 @@ def show_asks_results():
st.session_state["asks_details_result"] = None
st.session_state["preview_data_button_index"] = None
st.session_state["preview_sql"] = None
elif st.session_state["asks_results_type"] == "MISLEADING_QUERY":
st.markdown(
"Misleading query detected. Please try again with a different query."
)


def show_asks_details_results():
Expand Down
11 changes: 11 additions & 0 deletions wren-ai-service/docs/config_examples/config.azure.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -147,3 +153,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: false
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
11 changes: 11 additions & 0 deletions wren-ai-service/docs/config_examples/config.deepseek.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -157,3 +163,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: true
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
11 changes: 11 additions & 0 deletions wren-ai-service/docs/config_examples/config.google_ai_studio.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -146,3 +152,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: true
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
11 changes: 11 additions & 0 deletions wren-ai-service/docs/config_examples/config.groq.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -139,3 +145,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: true
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
11 changes: 11 additions & 0 deletions wren-ai-service/docs/config_examples/config.ollama.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,12 @@ pipes:
- name: sql_regeneration
llm: litellm_llm.default
engine: wren_ui
- name: instructions_indexing
embedder: litellm_embedder.default
document_store: qdrant
- name: instructions_retrieval
embedder: litellm_embedder.default
document_store: qdrant

---
settings:
Expand All @@ -136,3 +142,8 @@ settings:
langfuse_enable: true
logging_level: DEBUG
development: true
historical_question_retrieval_similarity_threshold: 0.9
sql_pairs_similarity_threshold: 0.7
sql_pairs_retrieval_max_size: 10
instructions_similarity_threshold: 0.7
instructions_top_k: 10
1 change: 1 addition & 0 deletions wren-ai-service/eval/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class EvalSettings(Settings):
config_path: str = "eval/config.yaml"
openai_api_key: SecretStr = Field(alias="OPENAI_API_KEY")
allow_sql_samples: bool = True
allow_instructions: bool = True
db_path_for_duckdb: str = ""

# BigQuery
Expand Down
2 changes: 1 addition & 1 deletion wren-ai-service/eval/evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ def _average_score(self, meta: dict) -> None:

dataset = parse_toml(meta["evaluation_dataset"])
metrics = pipelines.metrics_initiator(
meta["pipeline"], dataset, pipe_components, args.semantics
meta["pipeline"], dataset, pipe_components, args.semantics, settings
)

evaluator = Evaluator(**metrics)
Expand Down
Loading