Add FastAPI app for report generation with Docker support

Implement a modular FastAPI-based service for generating research reports using `GPTResearcher`. Includes secure API key authentication, a streaming response endpoint, and a Dockerized deployment setup. Also adds documentation, core dependencies, and project structure.
This commit is contained in:
ThomasTaroni 2025-04-25 08:34:18 +02:00
commit 3d0d2b2770
8 changed files with 289 additions and 0 deletions

View file

@ -0,0 +1,4 @@
# phoenix-technologies/__init__.py
from .gptresearch.deepresearch import ReportGenerator
__all__ = ["ReportGenerator"]

View file

@ -0,0 +1,42 @@
from gpt_researcher import GPTResearcher
class ReportGenerator:
def __init__(self, query: str, report_type: str):
"""
Initializes the ReportGenerator with a query and report type.
"""
self.query = query
self.report_type = report_type
self.researcher = GPTResearcher(query, report_type)
async def generate_report(self):
"""
Conducts research and generates the report along with additional information.
"""
# Conduct research
research_result = await self.researcher.conduct_research()
report = await self.researcher.write_report()
# Retrieve additional information
research_context = self.researcher.get_research_context()
research_costs = self.researcher.get_costs()
research_images = self.researcher.get_research_images()
research_sources = self.researcher.get_research_sources()
return {
"report": report,
"context": research_context,
"costs": research_costs,
"images": research_images,
"sources": research_sources
}
def get_query_details(self):
"""
Returns details of the query and report type.
"""
return {
"query": self.query,
"report_type": self.report_type
}