Ilia Tambovtsev commited on
Commit
764a794
·
1 Parent(s): 26234d7

refactor: change project structure

Browse files
src/__init__.py CHANGED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from processing import pdf2image, image2base64
2
+ from config import (
3
+ Config,
4
+ ModelConfig,
5
+ Navigator,
6
+ MultilineWrapper
7
+ )
src/chains/__init__.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pipelines import (
2
+ SingleSlidePipeline,
3
+ PresentationPipeline,
4
+ PresentationAnalysis,
5
+ SlideAnalysis
6
+ )
7
+
8
+ from chains import (
9
+ LoadPageChain,
10
+ Page2ImageChain,
11
+ ImageEncodeChain,
12
+ VisionAnalysisChain
13
+ )
src/{pdf_utils → chains}/chain_funcs.py RENAMED
File without changes
src/{pdf_utils → chains}/chains.py RENAMED
@@ -15,10 +15,10 @@ import fitz
15
 
16
  from io import BytesIO
17
  from PIL import Image
18
- from src.pdf_utils.chain_funcs import get_param_or_default
19
 
20
  from src.config import Navigator
21
- from src.pdf_utils.pdf2image import page2image
22
 
23
  logger = logging.getLogger(__name__)
24
 
@@ -171,14 +171,7 @@ class ImageEncodeChain(Chain):
171
  Dictionary with base64 encoded image string
172
  """
173
  image: Image.Image = inputs["image"]
174
-
175
- # Save image to bytes buffer
176
- buffer = BytesIO()
177
- image.save(buffer, format="PNG")
178
-
179
- # Encode to base64
180
- encoded = base64.b64encode(buffer.getvalue()).decode("utf-8")
181
-
182
  return dict(image_encoded=encoded)
183
 
184
 
 
15
 
16
  from io import BytesIO
17
  from PIL import Image
18
+ from src.chains.chain_funcs import get_param_or_default
19
 
20
  from src.config import Navigator
21
+ from src.processing import page2image, image2base64
22
 
23
  logger = logging.getLogger(__name__)
24
 
 
171
  Dictionary with base64 encoded image string
172
  """
173
  image: Image.Image = inputs["image"]
174
+ encoded = image2base64(image)
 
 
 
 
 
 
 
175
  return dict(image_encoded=encoded)
176
 
177
 
src/{pdf_utils → chains}/pipelines.py RENAMED
@@ -10,7 +10,7 @@ import fitz
10
  from langchain_openai.chat_models import ChatOpenAI
11
  from langchain.chains.base import Chain
12
 
13
- from src.pdf_utils.chains import (
14
  LoadPageChain,
15
  Page2ImageChain,
16
  ImageEncodeChain,
 
10
  from langchain_openai.chat_models import ChatOpenAI
11
  from langchain.chains.base import Chain
12
 
13
+ from src.chains.chains import (
14
  LoadPageChain,
15
  Page2ImageChain,
16
  ImageEncodeChain,
src/{prompts → chains/prompts}/vit_describe_image_ru_brief.txt RENAMED
File without changes
src/{prompts → chains/prompts}/vit_describe_image_ru_detailed.txt RENAMED
@@ -22,7 +22,7 @@
22
  - Формулы (математические выражения)
23
  - Код (язык программирования, листинги)
24
  - Цитаты
25
- - Ссылки (URLs, референсы)
26
  - Аббревиатуры и специальные термины
27
 
28
  Стилистика:
@@ -32,13 +32,13 @@
32
  - Расположение текста (центрирование, колонки)
33
  </examples>
34
 
35
- Не ограничивайтесь этим списком. Если на слайде есть другие важные текстовые элементы, опишите их тоже. Если каких-то элементов нет - пропустите их.
36
  Не пишите об отсутствующих элементах!
37
 
38
  Не суммаризируйте основной текст. Передавайте его полностью.
39
 
40
  # Визуальное содержание
41
- Опишите все визуальные элементы. Вот примеры визуальных элементов, на которые нужно обращать внимание:
42
 
43
  <examples>
44
  Данные и графики:
@@ -70,6 +70,6 @@
70
  - Форматирование ячеек
71
  </examples>
72
 
73
- Не ограничивайтесь этим списком. Если на слайде есть другие важные визуальные элементы, опишите их тоже. Если каких-то элементов нет - пропустите их.
74
  Не пишите об отсутствующих элементах!
75
  </description>
 
22
  - Формулы (математические выражения)
23
  - Код (язык программирования, листинги)
24
  - Цитаты
25
+ - Ссылки (URLs, референсы, источники)
26
  - Аббревиатуры и специальные термины
27
 
28
  Стилистика:
 
32
  - Расположение текста (центрирование, колонки)
33
  </examples>
34
 
35
+ Не ограничивайтесь этим списком. Если на слайде есть другие важные текстовые элементы, опишите их тоже. Если каких-то элементов нет - пропустите их.
36
  Не пишите об отсутствующих элементах!
37
 
38
  Не суммаризируйте основной текст. Передавайте его полностью.
39
 
40
  # Визуальное содержание
41
+ Опишите все визуальные элементы. Вот примеры визуальных элементов, на которые нужно обращать внимание:
42
 
43
  <examples>
44
  Данные и графики:
 
70
  - Форматирование ячеек
71
  </examples>
72
 
73
+ Не ограничивайтесь этим списком. Если на слайде есть другие важные визуальные элементы, опишите их тоже. Если каких-то элементов нет - пропустите их.
74
  Не пишите об отсутствующих элементах!
75
  </description>
src/{prompts → chains/prompts}/vit_describe_slide_instruction.txt RENAMED
File without changes
src/config/navigator.py CHANGED
@@ -18,7 +18,8 @@ class Navigator:
18
 
19
  # src paths
20
  self.src = self.root / "src"
21
- self.prompts = self.src / "prompts"
 
22
 
23
  # Create directories if they don't exist
24
  for path in [self.interim, self.processed]:
 
18
 
19
  # src paths
20
  self.src = self.root / "src"
21
+ self.chains = self.src / "chains"
22
+ self.prompts = self.chains / "prompts"
23
 
24
  # Create directories if they don't exist
25
  for path in [self.interim, self.processed]:
src/processing/__init__.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ from src.processing.image_utlis import image2base64
2
+ from src.processing.pdf_utils import pdf2image
src/{pdf_utils → processing}/image_utlis.py RENAMED
File without changes
src/{pdf_utils/pdf2image.py → processing/pdf_utils.py} RENAMED
File without changes