luanpoppe commited on
Commit
eebeb78
·
1 Parent(s): 6dc173d

feat: refatorando arquivos com funções úteis do langchain

Browse files
_utils/bubble_integrations/obter_arquivo.py CHANGED
@@ -5,7 +5,7 @@ import tempfile
5
  import requests
6
 
7
  from _utils.handle_files import return_document_list_with_llama_parser
8
- from _utils.splitters.splitter_util import SplitterUtils
9
 
10
  splitter_utils = SplitterUtils()
11
  headers = {"Authorization": f"Bearer {os.environ.get("BUBBLE_TOKEN")}"}
 
5
  import requests
6
 
7
  from _utils.handle_files import return_document_list_with_llama_parser
8
+ from _utils.langchain_utils.splitter_util import SplitterUtils
9
 
10
  splitter_utils = SplitterUtils()
11
  headers = {"Authorization": f"Bearer {os.environ.get("BUBBLE_TOKEN")}"}
_utils/gerar_relatorio_modelo_usuario/DocumentSummarizer_simples.py CHANGED
@@ -1,5 +1,5 @@
1
  from typing import List, Dict, Tuple, Optional
2
- from _utils.splitters.Splitter_class import Splitter
3
  from setup.easy_imports import (
4
  HuggingFaceEmbeddings,
5
  Chroma,
 
1
  from typing import List, Dict, Tuple, Optional
2
+ from _utils.langchain_utils.Splitter_class import Splitter
3
  from setup.easy_imports import (
4
  HuggingFaceEmbeddings,
5
  Chroma,
_utils/gerar_relatorio_modelo_usuario/GerarDocumento.py CHANGED
@@ -2,8 +2,8 @@ import os
2
  from typing import List, Dict, Tuple, Optional, cast
3
 
4
  from pydantic import SecretStr
5
- from _utils.LLMs.LLM_class import LLM
6
- from _utils.vector_stores.Vector_store_class import VectorStore
7
  from setup.easy_imports import (
8
  Chroma,
9
  ChatOpenAI,
@@ -20,7 +20,7 @@ from _utils.models.gerar_relatorio import (
20
  RetrievalConfig,
21
  )
22
  from cohere import Client
23
- from _utils.splitters.Splitter_class import Splitter
24
 
25
 
26
  class GerarDocumento:
 
2
  from typing import List, Dict, Tuple, Optional, cast
3
 
4
  from pydantic import SecretStr
5
+ from _utils.langchain_utils.LLM_class import LLM
6
+ from _utils.langchain_utils.Vector_store_class import VectorStore
7
  from setup.easy_imports import (
8
  Chroma,
9
  ChatOpenAI,
 
20
  RetrievalConfig,
21
  )
22
  from cohere import Client
23
+ from _utils.langchain_utils.Splitter_class import Splitter
24
 
25
 
26
  class GerarDocumento:
_utils/gerar_relatorio_modelo_usuario/contextual_retriever.py CHANGED
@@ -1,5 +1,5 @@
1
  import os
2
- from _utils.LLMs.LLM_class import LLM
3
  from _utils.gerar_relatorio_modelo_usuario.utils import (
4
  get_response_from_auxiliar_contextual_prompt,
5
  validate_many_chunks_in_one_request,
 
1
  import os
2
+ from _utils.langchain_utils.LLM_class import LLM
3
  from _utils.gerar_relatorio_modelo_usuario.utils import (
4
  get_response_from_auxiliar_contextual_prompt,
5
  validate_many_chunks_in_one_request,
_utils/gerar_relatorio_modelo_usuario/llm_calls.py CHANGED
@@ -2,7 +2,7 @@ import os
2
  from typing import Literal
3
 
4
  from pydantic import SecretStr
5
- from _utils.LLMs.LLM_class import LLM
6
  from setup.environment import default_model
7
  from langchain_core.messages import HumanMessage
8
  from langchain_openai import ChatOpenAI
@@ -58,4 +58,4 @@ def gpt_answer(
58
  async def agemini_answer(prompt, model: Literal["gemini-2.0-flash", "gemini-2.0-flash-lite"]="gemini-2.0-flash"):
59
  gemini = llm.google_gemini(model)
60
  resposta = await gemini.ainvoke([HumanMessage(content=prompt)])
61
- return resposta.content
 
2
  from typing import Literal
3
 
4
  from pydantic import SecretStr
5
+ from _utils.langchain_utils.LLM_class import LLM
6
  from setup.environment import default_model
7
  from langchain_core.messages import HumanMessage
8
  from langchain_openai import ChatOpenAI
 
58
  async def agemini_answer(prompt, model: Literal["gemini-2.0-flash", "gemini-2.0-flash-lite"]="gemini-2.0-flash"):
59
  gemini = llm.google_gemini(model)
60
  resposta = await gemini.ainvoke([HumanMessage(content=prompt)])
61
+ return resposta.content
_utils/gerar_relatorio_modelo_usuario/utils.py CHANGED
@@ -3,8 +3,8 @@ from langchain_core.documents import Document
3
  from langchain_core.messages import HumanMessage
4
 
5
  from _utils.gerar_relatorio_modelo_usuario.llm_calls import agemini_answer
6
- from _utils.splitters.Splitter_class import Splitter
7
- from _utils.LLMs.LLM_class import LLM
8
  from _utils.gerar_relatorio_modelo_usuario.prompts import (
9
  create_prompt_auxiliar_do_contextual_prompt,
10
  )
@@ -89,51 +89,6 @@ def validate_many_chunks_in_one_request(
89
 
90
 
91
  # Esta função gera a resposta que será usada em cada um das requisições de cada chunk
92
- # async def get_response_from_auxiliar_contextual_prompt(
93
- # full_text_as_array: List[str], full_text_as_string: str
94
- # ):
95
- # print("full_text_as_string: ", full_text_as_string)
96
-
97
- # print("\nCRIANDO PROMPT AUXILIAR DO CONTEXTUAL")
98
- # # PROMPT PARA GERAR O RESUMO INICIAL DO PROCESSO
99
- # prompt_auxiliar_summary = create_prompt_auxiliar_do_contextual_prompt(
100
- # full_text_as_string
101
- # )
102
-
103
- # import tiktoken
104
- # import re
105
-
106
- # # full_text_as_string = re.sub(r"\s+", " ", full_text_as_string).strip()
107
-
108
- # encoding = tiktoken.get_encoding("cl100k_base")
109
- # # Count tokens
110
- # num_tokens = len(encoding.encode(full_text_as_string))
111
- # with open("output.txt", "w", encoding="utf-8") as file:
112
- # file.write(full_text_as_string)
113
- # print(f"CONTAGEM DE TOKENS - {num_tokens}")
114
-
115
- # print("\n\nprompt_auxiliar_summary[0:500]: ", prompt_auxiliar_summary[0:500])
116
-
117
- # # Claude comentado pois o limite de tokens estava sendo passado pela requisição e dava erro
118
- # # response_auxiliar_summary = await aclaude_answer(
119
- # # self.claude_client, self.claude_context_model, prompt_auxiliar_summary
120
- # # )
121
-
122
- # llms = LLM()
123
- # print("\nCOMEÇANDO REQUISIÇÃO AUXILIAR DO CONTEXTUAL")
124
- # response_auxiliar_summary = await llms.google_gemini().ainvoke(
125
- # [HumanMessage(content=prompt_auxiliar_summary)]
126
- # )
127
- # print("TERMINOU REQUISIÇÃO AUXILIAR DO CONTEXTUAL")
128
-
129
- # print(
130
- # "\n\nresponse_auxiliar_summary.content[0:500]: ",
131
- # response_auxiliar_summary.content[0:500],
132
- # )
133
-
134
- # return response_auxiliar_summary.content
135
-
136
-
137
  async def get_response_from_auxiliar_contextual_prompt(full_text_as_array: List[str]):
138
  import tiktoken
139
 
 
3
  from langchain_core.messages import HumanMessage
4
 
5
  from _utils.gerar_relatorio_modelo_usuario.llm_calls import agemini_answer
6
+ from _utils.langchain_utils.Splitter_class import Splitter
7
+ from _utils.langchain_utils.LLM_class import LLM
8
  from _utils.gerar_relatorio_modelo_usuario.prompts import (
9
  create_prompt_auxiliar_do_contextual_prompt,
10
  )
 
89
 
90
 
91
  # Esta função gera a resposta que será usada em cada um das requisições de cada chunk
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  async def get_response_from_auxiliar_contextual_prompt(full_text_as_array: List[str]):
93
  import tiktoken
94
 
_utils/handle_files.py CHANGED
@@ -4,7 +4,7 @@ from langchain_core.documents import Document as LangchainDocument
4
  from llama_index import Document
5
  from llama_parse import LlamaParse, ResultType
6
 
7
- from _utils.splitters.splitter_util import SplitterUtils
8
 
9
  llama_parser_keys = [
10
  os.getenv("LLAMA_CLOUD_API_KEY_POPS"),
 
4
  from llama_index import Document
5
  from llama_parse import LlamaParse, ResultType
6
 
7
+ from _utils.langchain_utils.splitter_util import SplitterUtils
8
 
9
  llama_parser_keys = [
10
  os.getenv("LLAMA_CLOUD_API_KEY_POPS"),
_utils/{chains → langchain_utils}/Chain_class.py RENAMED
File without changes
_utils/{LLMs → langchain_utils}/LLM_class.py RENAMED
File without changes
_utils/{prompts → langchain_utils}/Prompt_class.py RENAMED
File without changes
_utils/{splitters → langchain_utils}/Splitter_class.py RENAMED
@@ -1,6 +1,6 @@
1
  from _utils.bubble_integrations.obter_arquivo import get_pdf_from_bubble
2
  from _utils.handle_files import return_document_list_with_llama_parser
3
- from _utils.splitters.splitter_util import (
4
  SplitterUtils,
5
  combine_documents_without_losing_pagination,
6
  )
 
1
  from _utils.bubble_integrations.obter_arquivo import get_pdf_from_bubble
2
  from _utils.handle_files import return_document_list_with_llama_parser
3
+ from _utils.langchain_utils.splitter_util import (
4
  SplitterUtils,
5
  combine_documents_without_losing_pagination,
6
  )
_utils/{vector_stores → langchain_utils}/Vector_store_class.py RENAMED
File without changes
_utils/{splitters → langchain_utils}/splitter_util.py RENAMED
File without changes
_utils/resumo_completo_cursor.py CHANGED
@@ -1,7 +1,7 @@
1
  import os
2
  from langchain_core.messages import HumanMessage
3
  from typing import cast
4
- from _utils.LLMs.LLM_class import LLM
5
  from _utils.bubble_integrations.enviar_resposta_final import enviar_resposta_final
6
  from _utils.custom_exception_handler import custom_exception_handler_wihout_api_handler
7
  from _utils.gerar_relatorio_modelo_usuario.prompts import (
@@ -24,7 +24,7 @@ from _utils.models.gerar_relatorio import (
24
  )
25
  import markdown
26
 
27
- from _utils.prompts.Prompt_class import Prompt
28
  from _utils.utils import convert_markdown_to_HTML
29
 
30
 
 
1
  import os
2
  from langchain_core.messages import HumanMessage
3
  from typing import cast
4
+ from _utils.langchain_utils.LLM_class import LLM
5
  from _utils.bubble_integrations.enviar_resposta_final import enviar_resposta_final
6
  from _utils.custom_exception_handler import custom_exception_handler_wihout_api_handler
7
  from _utils.gerar_relatorio_modelo_usuario.prompts import (
 
24
  )
25
  import markdown
26
 
27
+ from _utils.langchain_utils.Prompt_class import Prompt
28
  from _utils.utils import convert_markdown_to_HTML
29
 
30
 
gerar_documento/views.py CHANGED
@@ -1,10 +1,10 @@
1
  from typing import Any, Dict, cast
2
  from langchain.prompts import PromptTemplate
3
- from _utils.LLMs.LLM_class import LLM
4
  from _utils.gerar_relatorio_modelo_usuario.utils import (
5
  get_full_text_and_all_PDFs_chunks,
6
  )
7
- from _utils.prompts.Prompt_class import Prompt
8
  from setup.easy_imports import (
9
  Response,
10
  AsyncAPIView,
@@ -24,7 +24,7 @@ from .serializer import (
24
  GerarEmentaSerializer,
25
  )
26
  import asyncio
27
- from _utils.splitters.Splitter_class import Splitter
28
 
29
 
30
  class GerarDocumentoView(AsyncAPIView):
 
1
  from typing import Any, Dict, cast
2
  from langchain.prompts import PromptTemplate
3
+ from _utils.langchain_utils.LLM_class import LLM
4
  from _utils.gerar_relatorio_modelo_usuario.utils import (
5
  get_full_text_and_all_PDFs_chunks,
6
  )
7
+ from _utils.langchain_utils.Prompt_class import Prompt
8
  from setup.easy_imports import (
9
  Response,
10
  AsyncAPIView,
 
24
  GerarEmentaSerializer,
25
  )
26
  import asyncio
27
+ from _utils.langchain_utils.Splitter_class import Splitter
28
 
29
 
30
  class GerarDocumentoView(AsyncAPIView):
tests/LLMs/test_LLM_class.py CHANGED
@@ -1,7 +1,7 @@
1
  import pytest
2
  import os
3
- from _utils.LLMs.LLM_class import LLM
4
- from _utils.splitters.Splitter_class import Splitter
5
  from _utils.models.gerar_relatorio import (
6
  DocumentChunk,
7
  )
 
1
  import pytest
2
  import os
3
+ from _utils.langchain_utils.LLM_class import LLM
4
+ from _utils.langchain_utils.Splitter_class import Splitter
5
  from _utils.models.gerar_relatorio import (
6
  DocumentChunk,
7
  )
tests/test_custom_exception_handler.py CHANGED
@@ -1,6 +1,6 @@
1
  import pytest
2
  import os
3
- from _utils.splitters.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )
@@ -15,7 +15,7 @@ from django.core.handlers.wsgi import WSGIRequest
15
  # @pytest.mark.asyncio
16
  # def test_function_that_raises(self):
17
  # client = APIClient()
18
-
19
  # invalid_data = {
20
  # "name": "wrong property"
21
  # }
 
1
  import pytest
2
  import os
3
+ from _utils.langchain_utils.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )
 
15
  # @pytest.mark.asyncio
16
  # def test_function_that_raises(self):
17
  # client = APIClient()
18
+
19
  # invalid_data = {
20
  # "name": "wrong property"
21
  # }
tests/test_splitters.py CHANGED
@@ -1,6 +1,6 @@
1
  import pytest
2
  import os
3
- from _utils.splitters.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )
 
1
  import pytest
2
  import os
3
+ from _utils.langchain_utils.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )
tests/test_utils.py CHANGED
@@ -1,6 +1,6 @@
1
  import pytest
2
  import os
3
- from _utils.splitters.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )
 
1
  import pytest
2
  import os
3
+ from _utils.langchain_utils.Splitter_class import Splitter
4
  from _utils.models.gerar_relatorio import (
5
  DocumentChunk,
6
  )