codelion commited on
Commit
b1e2cf3
·
verified ·
1 Parent(s): ff272ed

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -14
app.py CHANGED
@@ -1,11 +1,13 @@
1
  import gradio as gr
2
- import openai
3
  import os
4
  import json
5
 
6
- # Set OpenAI API key and base URL from environment variables
7
- openai.api_key = os.environ["OPENAI_API_KEY"]
8
- openai.base_url = os.environ["OPENAI_BASE_URL"]
 
 
9
 
10
  # Define the number of results per page and total results to generate
11
  RESULTS_PER_PAGE = 10
@@ -24,13 +26,13 @@ def fetch_search_results(query):
24
  """
25
 
26
  try:
27
- response = openai.ChatCompletion.create(
28
  model="gemini-2.0-flash-lite", # Adjust model name as needed
29
  messages=[
30
  {"role": "system", "content": "You are a helpful search engine."},
31
  {"role": "user", "content": prompt}
32
  ],
33
- response_format="json_object"
34
  )
35
 
36
  content = response.choices[0].message.content
@@ -46,12 +48,8 @@ def fetch_search_results(query):
46
 
47
  return results, None
48
 
49
- except openai.error.OpenAIError as e:
50
- return None, f"Error: {str(e)}"
51
- except json.JSONDecodeError:
52
- return None, "Error: Failed to parse JSON response."
53
  except Exception as e:
54
- return None, f"Unexpected error: {str(e)}"
55
 
56
  def display_search_results(query, page=1):
57
  """Display search results for the given query and page number."""
@@ -108,8 +106,6 @@ def display_search_results(query, page=1):
108
  html += f'<button onclick="update_page({page + 1})">Next</button>'
109
  html += '</div></div>'
110
 
111
- # Note: Gradio doesn't support interactive JS directly in HTML outputs,
112
- # so we return page numbers for button functionality
113
  return html, page - 1 if page > 1 else None, page + 1 if page < total_pages else None
114
 
115
  def search_handler(query, page):
@@ -139,7 +135,7 @@ with gr.Blocks(title="LLM Search Engine") as app:
139
  outputs=[output_html, page_state]
140
  )
141
 
142
- # Note: For full pagination, we simulate Previous/Next with additional buttons
143
  with gr.Row():
144
  prev_button = gr.Button("Previous", visible=False)
145
  next_button = gr.Button("Next", visible=False)
 
1
  import gradio as gr
2
+ from openai import OpenAI
3
  import os
4
  import json
5
 
6
+ # Initialize OpenAI client with API key and base URL from environment variables
7
+ client = OpenAI(
8
+ api_key=os.environ["OPENAI_API_KEY"],
9
+ base_url=os.environ["OPENAI_BASE_URL"]
10
+ )
11
 
12
  # Define the number of results per page and total results to generate
13
  RESULTS_PER_PAGE = 10
 
26
  """
27
 
28
  try:
29
+ response = client.chat.completions.create(
30
  model="gemini-2.0-flash-lite", # Adjust model name as needed
31
  messages=[
32
  {"role": "system", "content": "You are a helpful search engine."},
33
  {"role": "user", "content": prompt}
34
  ],
35
+ response_format={"type": "json_object"} # Updated for latest SDK
36
  )
37
 
38
  content = response.choices[0].message.content
 
48
 
49
  return results, None
50
 
 
 
 
 
51
  except Exception as e:
52
+ return None, f"Error: {str(e)}"
53
 
54
  def display_search_results(query, page=1):
55
  """Display search results for the given query and page number."""
 
106
  html += f'<button onclick="update_page({page + 1})">Next</button>'
107
  html += '</div></div>'
108
 
 
 
109
  return html, page - 1 if page > 1 else None, page + 1 if page < total_pages else None
110
 
111
  def search_handler(query, page):
 
135
  outputs=[output_html, page_state]
136
  )
137
 
138
+ # Pagination buttons
139
  with gr.Row():
140
  prev_button = gr.Button("Previous", visible=False)
141
  next_button = gr.Button("Next", visible=False)