Skip to content

Commit 0f908f9

Browse files
authored
Merge pull request #839 from confident-ai/hotfix/synthesizer
Cleanup synthesizer
2 parents 4e5b544 + 503ccb8 commit 0f908f9

File tree

4 files changed

+59
-58
lines changed

4 files changed

+59
-58
lines changed

deepeval/progress_context.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ def synthesizer_progress_context(
2626
evaluation_model: str,
2727
embedder: str = None,
2828
max_generations: str = None,
29+
use_case: str = "QA",
2930
_show_indicator: bool = True,
3031
):
3132
with capture_synthesizer_run(max_generations):
3233
if embedder is None:
33-
description = f"✨ 🍰 ✨ You're generating up to {max_generations} goldens using DeepEval's latest Synthesizer (using {evaluation_model})! This may take a while..."
34+
description = f"✨ 🍰 ✨ You're generating up to {max_generations} goldens using DeepEval's latest Synthesizer (using {evaluation_model}, use case={use_case})! This may take a while..."
3435
else:
35-
description = f"✨ 🍰 ✨ You're generating up to {max_generations} goldens using DeepEval's latest Synthesizer (using {evaluation_model} and {embedder})! This may take a while..."
36+
description = f"✨ 🍰 ✨ You're generating up to {max_generations} goldens using DeepEval's latest Synthesizer (using {evaluation_model} and {embedder}, use case={use_case})! This may take a while..."
3637
console = Console(file=sys.stderr) # Direct output to standard error
3738
if _show_indicator:
3839
with Progress(

deepeval/synthesizer/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from .synthesizer import Synthesizer
1+
from .synthesizer import Synthesizer, UseCase

deepeval/synthesizer/synthesizer.py

Lines changed: 4 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,11 @@
1111
import random
1212
import math
1313

14-
sys.path.append(r"C:\Users\bombk\OneDrive\Documents\GitHub\deepeval")
15-
1614
from deepeval.synthesizer.template import EvolutionTemplate, SynthesizerTemplate
1715
from deepeval.synthesizer.template_prompt import (
1816
PromptEvolutionTemplate,
1917
PromptSynthesizerTemplate,
2018
)
21-
2219
from deepeval.synthesizer.context_generator import ContextGenerator
2320
from deepeval.synthesizer.utils import initialize_embedding_model
2421
from deepeval.models import DeepEvalBaseLLM
@@ -299,6 +296,7 @@ def generate_goldens_from_scratch(
299296
self.model.get_model_name(),
300297
None,
301298
(num_initial_goldens + 1) * num_evolutions,
299+
None,
302300
_show_indicator,
303301
):
304302
goldens: List[Golden] = []
@@ -356,6 +354,7 @@ def generate_goldens_from_prompts(
356354
self.model.get_model_name(),
357355
None,
358356
len(prompts) * num_evolutions,
357+
None,
359358
_show_indicator,
360359
):
361360
goldens: List[Golden] = []
@@ -421,6 +420,7 @@ def generate_goldens(
421420
self.model.get_model_name(),
422421
None,
423422
len(contexts) * max_goldens_per_context,
423+
use_case.value,
424424
_show_indicator,
425425
):
426426
goldens: List[Golden] = []
@@ -506,6 +506,7 @@ def generate_goldens(
506506
self.model.get_model_name(),
507507
None,
508508
len(contexts) * max_goldens_per_context,
509+
use_case.value,
509510
_show_indicator,
510511
):
511512

@@ -684,54 +685,3 @@ def save_as(self, file_type: str, directory: str) -> str:
684685

685686
print(f"Synthetic goldens saved at {full_file_path}!")
686687
return full_file_path
687-
688-
689-
if __name__ == "__main__":
690-
table1 = """CREATE TABLE Students (
691-
StudentID INT PRIMARY KEY,
692-
FirstName VARCHAR(50),
693-
LastName VARCHAR(50),
694-
Email VARCHAR(100) UNIQUE,
695-
DateOfBirth DATE,
696-
Gender CHAR(1),
697-
Address VARCHAR(200),
698-
PhoneNumber VARCHAR(15)
699-
);"""
700-
701-
table2 = """CREATE TABLE Courses (
702-
CourseID INT PRIMARY KEY,
703-
CourseName VARCHAR(100),
704-
TeacherID INT,
705-
Credits INT,
706-
DepartmentID INT,
707-
FOREIGN KEY (TeacherID) REFERENCES Teachers(TeacherID),
708-
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
709-
);"""
710-
711-
table3 = """CREATE TABLE Enrollments (
712-
EnrollmentID INT PRIMARY KEY,
713-
StudentID INT,
714-
CourseID INT,
715-
EnrollmentDate DATE,
716-
Grade CHAR(2),
717-
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
718-
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
719-
);"""
720-
721-
table4 = """CREATE TABLE Teachers (
722-
TeacherID INT PRIMARY KEY,
723-
FirstName VARCHAR(50),
724-
LastName VARCHAR(50),
725-
Email VARCHAR(100) UNIQUE,
726-
DepartmentID INT,
727-
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
728-
);"""
729-
730-
contexts = [[table1, table2, table3, table4]]
731-
synthesizer = Synthesizer()
732-
text_to_sql_goldens = synthesizer.generate_goldens(
733-
max_goldens_per_context=15, contexts=contexts, use_case=UseCase.TEXT2SQL
734-
)
735-
for golden in text_to_sql_goldens:
736-
print("Input : " + str(golden.input))
737-
print("Expected Output : " + str(golden.expected_output))

tests/test_synthesizer.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os
22
import pytest
3-
from deepeval.synthesizer import Synthesizer
3+
from deepeval.synthesizer import Synthesizer, UseCase
44
from deepeval.dataset import EvaluationDataset
55
from deepeval.models import OpenAIEmbeddingModel
66

@@ -44,3 +44,53 @@ def test_synthesizer():
4444
# max_goldens_per_document=2,
4545
# )
4646
# dataset.save_as(file_type="json", directory="./results")
47+
48+
49+
# table1 = """CREATE TABLE Students (
50+
# StudentID INT PRIMARY KEY,
51+
# FirstName VARCHAR(50),
52+
# LastName VARCHAR(50),
53+
# Email VARCHAR(100) UNIQUE,
54+
# DateOfBirth DATE,
55+
# Gender CHAR(1),
56+
# Address VARCHAR(200),
57+
# PhoneNumber VARCHAR(15)
58+
# );"""
59+
60+
# table2 = """CREATE TABLE Courses (
61+
# CourseID INT PRIMARY KEY,
62+
# CourseName VARCHAR(100),
63+
# TeacherID INT,
64+
# Credits INT,
65+
# DepartmentID INT,
66+
# FOREIGN KEY (TeacherID) REFERENCES Teachers(TeacherID),
67+
# FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
68+
# );"""
69+
70+
# table3 = """CREATE TABLE Enrollments (
71+
# EnrollmentID INT PRIMARY KEY,
72+
# StudentID INT,
73+
# CourseID INT,
74+
# EnrollmentDate DATE,
75+
# Grade CHAR(2),
76+
# FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
77+
# FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
78+
# );"""
79+
80+
# table4 = """CREATE TABLE Teachers (
81+
# TeacherID INT PRIMARY KEY,
82+
# FirstName VARCHAR(50),
83+
# LastName VARCHAR(50),
84+
# Email VARCHAR(100) UNIQUE,
85+
# DepartmentID INT,
86+
# FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
87+
# );"""
88+
89+
# contexts = [[table1, table2, table3, table4]]
90+
# synthesizer = Synthesizer()
91+
# text_to_sql_goldens = synthesizer.generate_goldens(
92+
# max_goldens_per_context=15, contexts=contexts, use_case=UseCase.TEXT2SQL
93+
# )
94+
# for golden in text_to_sql_goldens:
95+
# print("Input : " + str(golden.input))
96+
# print("Expected Output : " + str(golden.expected_output))

0 commit comments

Comments
 (0)