jojopp commited on
Commit
77726b9
·
1 Parent(s): d4e9d67

Fix circular import by moving DuckDuckGoSearchTool to separate module

Browse files
Files changed (3) hide show
  1. app.py +6 -5
  2. tools/blog_tools.py +2 -2
  3. tools/search_tools.py +9 -0
app.py CHANGED
@@ -1,10 +1,11 @@
1
- from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
2
  import datetime
3
  import requests
4
  import pytz
5
  import yaml
6
  from tools.final_answer import FinalAnswerTool
7
  from tools.blog_tools import generate_blog_section, improve_writing_style, check_readability, generate_seo_metadata
 
8
  from Gradio_UI import GradioUI
9
 
10
  @tool
@@ -15,7 +16,7 @@ def generate_blog_outline(topic: str) -> str:
15
  """
16
  try:
17
  # Research the topic first
18
- search_tool = DuckDuckGoSearchTool(max_results=2)
19
  research = search_tool.forward(f"{topic} key aspects challenges solutions")
20
 
21
  # Create an outline based on research and expertise
@@ -48,7 +49,7 @@ def suggest_blog_topics(main_theme: str) -> str:
48
  """
49
  try:
50
  # Research current trends
51
- search_tool = DuckDuckGoSearchTool(max_results=2)
52
  research = search_tool.forward(f"{main_theme} latest developments challenges")
53
 
54
  # Generate topic suggestions based on research and expertise
@@ -90,10 +91,10 @@ def research_topic(query: str) -> str:
90
  """
91
  try:
92
  # Create a fresh instance for each search
93
- search_tool = DuckDuckGoSearchTool(max_results=3) # Reduced from 5 to 3
94
 
95
  # Add focus on tech and AI product development
96
- enhanced_query = f"{query} AI product development" # Shortened query
97
  results = search_tool.forward(enhanced_query)
98
 
99
  # Format the results in your style
 
1
+ from smolagents import CodeAgent, HfApiModel, load_tool, tool
2
  import datetime
3
  import requests
4
  import pytz
5
  import yaml
6
  from tools.final_answer import FinalAnswerTool
7
  from tools.blog_tools import generate_blog_section, improve_writing_style, check_readability, generate_seo_metadata
8
+ from tools.search_tools import get_search_tool
9
  from Gradio_UI import GradioUI
10
 
11
  @tool
 
16
  """
17
  try:
18
  # Research the topic first
19
+ search_tool = get_search_tool(max_results=2)
20
  research = search_tool.forward(f"{topic} key aspects challenges solutions")
21
 
22
  # Create an outline based on research and expertise
 
49
  """
50
  try:
51
  # Research current trends
52
+ search_tool = get_search_tool(max_results=2)
53
  research = search_tool.forward(f"{main_theme} latest developments challenges")
54
 
55
  # Generate topic suggestions based on research and expertise
 
91
  """
92
  try:
93
  # Create a fresh instance for each search
94
+ search_tool = get_search_tool(max_results=3)
95
 
96
  # Add focus on tech and AI product development
97
+ enhanced_query = f"{query} AI product development"
98
  results = search_tool.forward(enhanced_query)
99
 
100
  # Format the results in your style
tools/blog_tools.py CHANGED
@@ -2,7 +2,7 @@ from smolagents import tool
2
  from typing import List, Dict
3
  import re
4
  import yaml
5
- from app import DuckDuckGoSearchTool
6
 
7
  # Load style guide
8
  with open("style_guide.yaml", 'r') as f:
@@ -21,7 +21,7 @@ def generate_blog_section(topic: str, section_title: str) -> str:
21
  section_title: The title of the section to generate
22
  """
23
  # First, get some background information
24
- search_tool = DuckDuckGoSearchTool(max_results=2)
25
  try:
26
  search_query = f"{topic} {section_title}"
27
  research = search_tool.forward(search_query)
 
2
  from typing import List, Dict
3
  import re
4
  import yaml
5
+ from .search_tools import get_search_tool
6
 
7
  # Load style guide
8
  with open("style_guide.yaml", 'r') as f:
 
21
  section_title: The title of the section to generate
22
  """
23
  # First, get some background information
24
+ search_tool = get_search_tool(max_results=2)
25
  try:
26
  search_query = f"{topic} {section_title}"
27
  research = search_tool.forward(search_query)
tools/search_tools.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ from smolagents import DuckDuckGoSearchTool
2
+
3
+ def get_search_tool(max_results=3):
4
+ """Returns a configured DuckDuckGo search tool instance
5
+
6
+ Args:
7
+ max_results: Maximum number of results to return
8
+ """
9
+ return DuckDuckGoSearchTool(max_results=max_results)