Spaces:
Sleeping
Sleeping
Update article_generator.py
Browse files- article_generator.py +11 -15
article_generator.py
CHANGED
|
@@ -240,38 +240,34 @@ def generate_text_with_gpt4(prompt):
|
|
| 240 |
)
|
| 241 |
return response.choices[0]["message"]["content"].strip()
|
| 242 |
|
|
|
|
| 243 |
# 初期データをTavily検索で収集する関数
|
| 244 |
def perform_initial_tavily_search(h2_texts, h3_texts):
|
| 245 |
tavily_search_tool = EnhancedTavilySearchTool()
|
| 246 |
queries = []
|
|
|
|
| 247 |
for idx, h2_text in enumerate(h2_texts):
|
| 248 |
h3_for_this_h2 = [h3 for h3 in h3_texts if h3.startswith(f"{idx+1}-")]
|
| 249 |
-
if not h3_for_this_h2 and h2_text.strip() != "まとめ":
|
| 250 |
print(f"No matching h3 elements found for h2: {h2_text} at index {idx+1}")
|
| 251 |
continue
|
|
|
|
| 252 |
query = f"{h2_text} {' '.join(h3_for_this_h2)}"
|
| 253 |
queries.append(query)
|
| 254 |
|
| 255 |
-
print("
|
| 256 |
responses = tavily_search_tool.search(queries)
|
| 257 |
-
if isinstance(responses, str):
|
| 258 |
-
try:
|
| 259 |
-
responses = json.loads(responses) # 文字列をJSONとして解析
|
| 260 |
-
except json.JSONDecodeError:
|
| 261 |
-
print("Error: Response string is not valid JSON.")
|
| 262 |
-
return {}
|
| 263 |
-
if not isinstance(responses, list):
|
| 264 |
-
print("Error: Response format is incorrect, expected a list.")
|
| 265 |
-
return {}
|
| 266 |
|
|
|
|
| 267 |
filtered_responses = filter_responses_by_domain(responses, allowed_domains)
|
|
|
|
| 268 |
response_dict = {}
|
| 269 |
for i, query in enumerate(queries):
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
response_dict[query] = response.get('title', 'No title received')
|
| 273 |
else:
|
| 274 |
-
response_dict[query] = "
|
|
|
|
| 275 |
return response_dict
|
| 276 |
|
| 277 |
def save_preloaded_tavily_data(data):
|
|
|
|
| 240 |
)
|
| 241 |
return response.choices[0]["message"]["content"].strip()
|
| 242 |
|
| 243 |
+
# 初期データをTavily検索で収集する関数
|
| 244 |
# 初期データをTavily検索で収集する関数
|
| 245 |
def perform_initial_tavily_search(h2_texts, h3_texts):
|
| 246 |
tavily_search_tool = EnhancedTavilySearchTool()
|
| 247 |
queries = []
|
| 248 |
+
|
| 249 |
for idx, h2_text in enumerate(h2_texts):
|
| 250 |
h3_for_this_h2 = [h3 for h3 in h3_texts if h3.startswith(f"{idx+1}-")]
|
| 251 |
+
if not h3_for_this_h2 and h2_text.strip() != "まとめ": # "まとめ" セクションを除外
|
| 252 |
print(f"No matching h3 elements found for h2: {h2_text} at index {idx+1}")
|
| 253 |
continue
|
| 254 |
+
|
| 255 |
query = f"{h2_text} {' '.join(h3_for_this_h2)}"
|
| 256 |
queries.append(query)
|
| 257 |
|
| 258 |
+
print("Performing Tavily search with queries:", queries)
|
| 259 |
responses = tavily_search_tool.search(queries)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 260 |
|
| 261 |
+
# フィルタリングを適用
|
| 262 |
filtered_responses = filter_responses_by_domain(responses, allowed_domains)
|
| 263 |
+
|
| 264 |
response_dict = {}
|
| 265 |
for i, query in enumerate(queries):
|
| 266 |
+
if i < len(filtered_responses): # 応答リストの範囲内にあることを確認
|
| 267 |
+
response_dict[query] = filtered_responses[i]
|
|
|
|
| 268 |
else:
|
| 269 |
+
response_dict[query] = "No response received"
|
| 270 |
+
|
| 271 |
return response_dict
|
| 272 |
|
| 273 |
def save_preloaded_tavily_data(data):
|