Start work on docker module

This commit is contained in:
2024-10-24 08:39:31 +02:00
parent ab03e6836b
commit 4bbe636f0e
8 changed files with 532 additions and 30 deletions

View File

@@ -1,7 +1,8 @@
from .inference_result import InferenceResult
import xml.etree.ElementTree as ET
from typing import Iterator, TypeVar
import re
import xml.etree.ElementTree as ET
from .inference_result import InferenceResult
def get_valid_root_elements(schema: str) -> set:
"""
@@ -44,4 +45,25 @@ def split_response(response: str, valid_elements: set) -> InferenceResult:
split_point = last_match.start()
reasoning = response[:split_point].strip()
actions = response[split_point:].strip()
return InferenceResult(reasoning, actions)
return InferenceResult(reasoning, actions)
def stop_before_value(iterator: Iterator[str], stop_value: str) -> Iterator[str]:
"""
Creates an iterator that yields values from the input iterator
until it encounters the stop_value (exclusive).
Args:
iterator: The source iterator
stop_value: The value to stop before
Yields:
Values from the iterator until stop_value is encountered
If stop_value is part of an item, yields the part before stop_value
"""
for item in iterator:
if stop_value in item:
split_point = item.index(stop_value)
if split_point > 0:
yield item[:split_point]
break
yield item