building guidelines services

This commit is contained in:
Adam Wilson
2025-07-15 21:19:28 -06:00
parent 51cce1545a
commit cd0e4b9de9
18 changed files with 306 additions and 273 deletions
@@ -3,12 +3,15 @@ from langchain.prompts import PromptTemplate
from src.text_generation.ports.abstract_embedding_model import AbstractEmbeddingModel
from src.text_generation.ports.abstract_foundation_model import AbstractFoundationModel
from src.text_generation.services.guidelines.rag_guidelines_service import RetrievalAugmentedGenerationGuidelinesService
from src.text_generation.services.nlp.abstract_text_generation_completion_service import AbstractTextGenerationCompletionService
from src.text_generation.services.guidelines.abstract_rag_guidelines_service import AbstractRetrievalAugmentedGenerationGuidelinesService
from src.text_generation.services.utilities.abstract_response_processing_service import AbstractResponseProcessingService
from src.text_generation.services.utilities.response_processing_service import ResponseProcessingService
class RetrievalAugmentedGenerationCompletionService(AbstractTextGenerationCompletionService):
class RetrievalAugmentedGenerationCompletionService(
AbstractTextGenerationCompletionService):
def __init__(
self,
foundation_model: AbstractFoundationModel,
@@ -19,8 +22,8 @@ class RetrievalAugmentedGenerationCompletionService(AbstractTextGenerationComple
super().__init__()
self.language_model_pipeline = foundation_model.create_pipeline()
self.embeddings = embedding_model.embeddings
self.rag_guidelines_service = rag_guidelines_service
self.response_processing_service = response_processing_service
self.rag_guidelines_service: RetrievalAugmentedGenerationGuidelinesService = rag_guidelines_service
self.response_processing_service: ResponseProcessingService = response_processing_service
def invoke(self, user_prompt: str) -> str:
@@ -3,6 +3,9 @@ from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
from src.text_generation.common.constants import Constants
from src.text_generation.services.guidelines.abstract_chain_of_thought_security_guidelines_service import AbstractChainOfThoughtSecurityGuidelinesService
from src.text_generation.services.guidelines.abstract_reflexion_security_guidelines_service import AbstractReflexionSecurityGuidelinesService
from src.text_generation.services.guidelines.abstract_retrieval_augmented_generation_context_security_guidelines_service import AbstractRetrievalAugmentedGenerationContextSecurityGuidelinesService
from src.text_generation.services.nlp.abstract_prompt_template_service import AbstractPromptTemplateService
from src.text_generation.services.nlp.abstract_text_generation_completion_service import AbstractTextGenerationCompletionService
from src.text_generation.ports.abstract_foundation_model import AbstractFoundationModel
@@ -32,8 +35,8 @@ class TextGenerationCompletionService(
self._use_reflexion = True
def _extract_assistant_response(self, text):
if self.constants.ASSISTANT_TOKEN in text:
return text.split(self.constants.ASSISTANT_TOKEN)[-1].strip()
if self.constants.PHI_3_ASSISTANT_START_TOKEN in text:
return text.split(self.constants.PHI_3_ASSISTANT_START_TOKEN)[-1].strip()
return text
def without_guidelines(self) -> AbstractTextGenerationCompletionService: