mirror of
https://github.com/aljazceru/dev-gpt.git
synced 2025-12-29 11:24:21 +01:00
🧪 test: level 2
This commit is contained in:
@@ -187,24 +187,24 @@ metas:
|
||||
tag_name=REQUIREMENTS_FILE_TAG,
|
||||
)[REQUIREMENTS_FILE_NAME]
|
||||
|
||||
# self.generate_and_persist_file(
|
||||
# section_title='Generate Dockerfile',
|
||||
# template=template_generate_apt_get_install,
|
||||
# destination_folder=MICROSERVICE_FOLDER_v1,
|
||||
# file_name_s=None,
|
||||
# parse_result_fn=self.parse_result_fn_dockerfile,
|
||||
# docker_file_wrapped=self.read_docker_template(),
|
||||
# requirements_file_wrapped=self.files_to_string({
|
||||
# REQUIREMENTS_FILE_NAME: requirements_content,
|
||||
# })
|
||||
# )
|
||||
|
||||
# docker file from curdir
|
||||
shutil.copy(
|
||||
src=os.path.join(os.path.dirname(__file__), 'static_files', 'microservice', 'Dockerfile'),
|
||||
dst=MICROSERVICE_FOLDER_v1 + '/Dockerfile'
|
||||
self.generate_and_persist_file(
|
||||
section_title='Generate Dockerfile',
|
||||
template=template_generate_apt_get_install,
|
||||
destination_folder=MICROSERVICE_FOLDER_v1,
|
||||
file_name_s=None,
|
||||
parse_result_fn=self.parse_result_fn_dockerfile,
|
||||
docker_file_wrapped=self.read_docker_template(),
|
||||
requirements_file_wrapped=self.files_to_string({
|
||||
REQUIREMENTS_FILE_NAME: requirements_content,
|
||||
})
|
||||
)
|
||||
|
||||
# # docker file from curdir
|
||||
# shutil.copy(
|
||||
# src=os.path.join(os.path.dirname(__file__), 'static_files', 'microservice', 'Dockerfile'),
|
||||
# dst=MICROSERVICE_FOLDER_v1 + '/Dockerfile'
|
||||
# )
|
||||
|
||||
self.write_config_yml(microservice_name, MICROSERVICE_FOLDER_v1)
|
||||
|
||||
print('\nFirst version of the microservice generated. Start iterating on it to make the tests pass...')
|
||||
@@ -215,14 +215,17 @@ metas:
|
||||
return f.read()
|
||||
|
||||
def parse_result_fn_dockerfile(self, content_raw: str):
|
||||
json_string = self.extract_content_from_result(content_raw, 'apt-get-packages.json', match_single_block=True)
|
||||
packages = json.loads(json_string)['packages']
|
||||
|
||||
docker_file_template = self.read_docker_template()
|
||||
return {DOCKER_FILE_NAME: docker_file_template.replace('{{apt_get_packages}}', '{apt_get_packages}').format(apt_get_packages=content_raw)}
|
||||
return {DOCKER_FILE_NAME: docker_file_template.replace('{{apt_get_packages}}', '{apt_get_packages}').format(apt_get_packages=packages)}
|
||||
|
||||
def parse_result_fn_requirements(self, content_raw: str):
|
||||
content_parsed = self.extract_content_from_result(content_raw, 'requirements.txt', match_single_block=True)
|
||||
|
||||
lines = content_parsed.split('\n')
|
||||
lines = [line for line in lines if not any([pkg in line for pkg in ['jina', 'docarray', 'openai', 'pytest']])]
|
||||
lines = [line for line in lines if not any([pkg in line for pkg in ['jina', 'docarray', 'openai', 'pytest', 'gpt_3_5_turbo_api']])]
|
||||
content_modified = f'''jina==3.15.1.dev14
|
||||
docarray==0.21.0
|
||||
openai>=0.26.0
|
||||
@@ -322,7 +325,7 @@ pytest
|
||||
section_title='Debugging apt-get dependency issue',
|
||||
template=template_solve_apt_get_dependency_issue,
|
||||
destination_folder=next_microservice_path,
|
||||
file_name_s=None,
|
||||
file_name_s=['apt-get-packages.json'],
|
||||
parse_result_fn=self.parse_result_fn_dockerfile,
|
||||
system_definition_examples=[],
|
||||
summarized_error=summarized_error,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
FROM jinaai/jina:3.14.1-py39-standard
|
||||
|
||||
RUN apt-get update && apt-get install --no-install-recommends -y {{apt_get_packages}} && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
## install requirements for the executor
|
||||
COPY requirements.txt .
|
||||
RUN pip install --compile -r requirements.txt
|
||||
|
||||
@@ -157,13 +157,10 @@ template_generate_requirements = PromptTemplate.from_template(
|
||||
|
||||
{code_files_wrapped}
|
||||
|
||||
Write the content of the requirements.txt file.
|
||||
The requirements.txt file must include the following packages in that specified version:
|
||||
Write the content of the requirements.txt file like this:
|
||||
**requirements.txt**
|
||||
```
|
||||
jina==3.15.1.dev14
|
||||
docarray==0.21.0
|
||||
openai>=0.26.0
|
||||
pytest
|
||||
...
|
||||
```
|
||||
Add any more packages that are needed to run the code.
|
||||
You must not add gpt_3_5_turbo_api to the requirements.txt file.
|
||||
@@ -184,7 +181,17 @@ Name all packages which need to be installed via `apt-get install` in above Dock
|
||||
|
||||
Note that you must not list apt-get packages that are already installed in the Dockerfile.
|
||||
Note that openai does not require any apt-get packages.
|
||||
Output the packages that need to me placed at {{apt_get_packages}} as a white space separated list:
|
||||
Note that you only list packages where you are highly confident that they are really needed.
|
||||
Output the packages that need to me placed at {{apt_get_packages}} as json in the following format:
|
||||
**apt-get-packages.json**
|
||||
```json
|
||||
{{"packages": ["<package1>", "<package2>"]}}
|
||||
```
|
||||
Have in mind that the packages list can be empty like this:
|
||||
**apt-get-packages.json**
|
||||
```json
|
||||
{{"packages": []}}
|
||||
```
|
||||
'''
|
||||
)
|
||||
|
||||
|
||||
@@ -26,6 +26,11 @@ def test_generation_level_0(tmpdir):
|
||||
assert generator.generate() == 0
|
||||
|
||||
|
||||
# fixture
|
||||
@pytest.fixture
|
||||
def tmpdir():
|
||||
return 'microservice'
|
||||
|
||||
def test_generation_level_1(tmpdir):
|
||||
"""
|
||||
Requirements:
|
||||
|
||||
Reference in New Issue
Block a user