Mikeplockhart commited on
Commit
e800a62
·
verified ·
1 Parent(s): fda01e0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -5
app.py CHANGED
@@ -2,6 +2,8 @@ import gradio as gr
2
  import os
3
  from langchain_community.document_loaders import JSONLoader
4
  from langchain_community.vectorstores import Qdrant
 
 
5
  from langchain_community.embeddings import HuggingFaceEmbeddings, HuggingFaceBgeEmbeddings
6
  from sentence_transformers.cross_encoder import CrossEncoder
7
  from groq import Groq
@@ -12,7 +14,7 @@ client = Groq(
12
 
13
  # loading data
14
  json_path = "format_food.json"
15
- #json_path = "llama70b_food_dump.json"
16
 
17
  def metadata_func(record: dict, metadata: dict) -> dict:
18
  metadata["title"] = record.get("title")
@@ -37,7 +39,7 @@ loader = JSONLoader(
37
  )
38
 
39
  data = loader.load()
40
-
41
  # Models
42
  # model_name = "Snowflake/snowflake-arctic-embed-xs"
43
  # rerank_model = CrossEncoder("mixedbread-ai/mxbai-rerank-xsmall-v1")
@@ -72,9 +74,25 @@ def format_to_markdown(response_list):
72
  temp_string = "\n- ".join(response_list)
73
  return temp_string
74
 
75
- def run_query(query: str, groq: bool):
76
  print("Running Query")
77
- answer = qdrant.similarity_search(query=query, k=10)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  title_and_description = f"# Best Choice:\nA {answer[0].metadata['title']}: {answer[0].page_content}"
79
  instructions = format_to_markdown(answer[0].metadata['instructions'])
80
  recipe = f"# Standard Method\n## Cooking time:\n{answer[0].metadata['time']}\n\n## Recipe:\n{instructions}"
@@ -97,11 +115,12 @@ def run_query(query: str, groq: bool):
97
  with gr.Blocks() as demo:
98
  gr.Markdown("Start typing below and then click **Run** to see the output.")
99
  inp = gr.Textbox(placeholder="What sort of meal are you after?")
 
100
  groq_button = gr.Checkbox(value=False, label="Use Llama for a better recipe?")
101
  title_output = gr.Markdown(label="Title and description")
102
  instructions_output = gr.Markdown(label="Recipe")
103
  updated_recipe = gr.Markdown(label="Updated Recipe")
104
  btn = gr.Button("Run")
105
- btn.click(fn=run_query, inputs=[inp, groq_button], outputs=[title_output, instructions_output, updated_recipe])
106
 
107
  demo.launch()
 
2
  import os
3
  from langchain_community.document_loaders import JSONLoader
4
  from langchain_community.vectorstores import Qdrant
5
+ from qdrant_client.http import models as rest
6
+ from qdrant_client import QdrantClient, models
7
  from langchain_community.embeddings import HuggingFaceEmbeddings, HuggingFaceBgeEmbeddings
8
  from sentence_transformers.cross_encoder import CrossEncoder
9
  from groq import Groq
 
14
 
15
  # loading data
16
  json_path = "format_food.json"
17
+ json_path = "llama70b_food_dump.json"
18
 
19
  def metadata_func(record: dict, metadata: dict) -> dict:
20
  metadata["title"] = record.get("title")
 
39
  )
40
 
41
  data = loader.load()
42
+ country_list = list(set([item.metadata['cuisine'] for item in data]))
43
  # Models
44
  # model_name = "Snowflake/snowflake-arctic-embed-xs"
45
  # rerank_model = CrossEncoder("mixedbread-ai/mxbai-rerank-xsmall-v1")
 
74
  temp_string = "\n- ".join(response_list)
75
  return temp_string
76
 
77
+ def run_query(query: str, groq: bool, countries: str = "None"):
78
  print("Running Query")
79
+ if countries != "None":
80
+ countries_select = models.Filter(
81
+ must=[
82
+ models.FieldCondition(
83
+ key="metadata.cuisine", # Adjust key based on your data structure
84
+ match=models.MatchValue(value=countries),
85
+ )
86
+ ]
87
+ )
88
+ else:
89
+ countries_select = None
90
+
91
+ answer = qdrant.similarity_search(
92
+ query=query,
93
+ k=10,
94
+ filter=countries_select
95
+ )
96
  title_and_description = f"# Best Choice:\nA {answer[0].metadata['title']}: {answer[0].page_content}"
97
  instructions = format_to_markdown(answer[0].metadata['instructions'])
98
  recipe = f"# Standard Method\n## Cooking time:\n{answer[0].metadata['time']}\n\n## Recipe:\n{instructions}"
 
115
  with gr.Blocks() as demo:
116
  gr.Markdown("Start typing below and then click **Run** to see the output.")
117
  inp = gr.Textbox(placeholder="What sort of meal are you after?")
118
+ dropdown = gr.Dropdown(['None'] + country_list, label='Filter on countries', value='None')
119
  groq_button = gr.Checkbox(value=False, label="Use Llama for a better recipe?")
120
  title_output = gr.Markdown(label="Title and description")
121
  instructions_output = gr.Markdown(label="Recipe")
122
  updated_recipe = gr.Markdown(label="Updated Recipe")
123
  btn = gr.Button("Run")
124
+ btn.click(fn=run_query, inputs=[inp, groq_button, dropdown], outputs=[title_output, instructions_output, updated_recipe])
125
 
126
  demo.launch()