prompty 1.0.0a1__tar.gz → 1.0.0a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prompty-1.0.0a1 → prompty-1.0.0a2}/PKG-INFO +1 -1
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/__init__.py +4 -4
- prompty-1.0.0a2/prompty/_version.py +1 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/azure/processor.py +4 -4
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/core.py +8 -1
- prompty-1.0.0a2/tests/prompts/context.json +40 -0
- prompty-1.0.0a1/prompty/_version.py +0 -1
- prompty-1.0.0a1/tests/prompts/context.json +0 -34
- {prompty-1.0.0a1 → prompty-1.0.0a2}/.gitignore +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/.vscode/settings.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/LICENSE +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/README.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/azure/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/azure/executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/azure_beta/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/azure_beta/executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/cli.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/common.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/invoker.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/openai/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/openai/executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/openai/processor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/parsers.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/py.typed +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/renderers.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/serverless/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/serverless/executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/serverless/processor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/tracer.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/prompty/utils.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/pyproject.toml +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/coverage.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/fake_azure_executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/fake_serverless_executor.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/1contoso.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/2contoso.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/3contoso.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/4contoso.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/basic.prompty.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/camping.jpg +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/context.prompty.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/contoso_multi.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/faithfulness.prompty.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/generated/groundedness.prompty.md +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/hello_world-goodbye_world-hello_again.embedding.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/hello_world.embedding.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/mustache/basic.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/agent.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/basic.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/basic.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/basic_json_output.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/basic_mustache.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/camping.jpg +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/chat.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/context.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/context.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/embedding.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/embedding.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/evaluation.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/faithfulness.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/faithfulness.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/fake.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/func_inline.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/funcfile.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/funcfile.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/functions.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/functions.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/groundedness.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/groundedness.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/prompty.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/serverless.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/serverless.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/serverless_stream.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/serverless_stream.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/streaming.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/streaming.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/structured_inline.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/structured_output.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/structured_output.prompty.execution.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/structured_output_schema.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/basic.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/sub/__init__.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/sub/basic.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/sub/prompty.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/sub/sub/test.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/test.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompts/threaded_chat.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/prompty.json +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/properties/basic_array.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/properties/basic_dictionary.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/properties/basic_mixed.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/properties/thread_split.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_common.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_conversion.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_core.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_execute.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_factory_invoker.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_mustache.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_parser.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_path_exec.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_tools.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/test_tracing.py +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/tools/basic.prompty +0 -0
- {prompty-1.0.0a1 → prompty-1.0.0a2}/tests/tools/dynamic.prompty +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: prompty
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.0a2
|
4
4
|
Summary: Prompty is a new asset class and format for LLM prompts that aims to provide observability, understandability, and portability for developers. It includes spec, tooling, and a runtime. This Prompty runtime supports Python
|
5
5
|
Author-email: Seth Juarez <seth.juarez@microsoft.com>
|
6
6
|
Requires-Python: >=3.9
|
@@ -482,7 +482,7 @@ async def run_async(
|
|
482
482
|
|
483
483
|
@trace(description="Execute a prompty")
|
484
484
|
def execute(
|
485
|
-
prompt: Union[str, Prompty],
|
485
|
+
prompt: Union[str, Path, Prompty],
|
486
486
|
connection: dict[str, typing.Any] = {},
|
487
487
|
options: dict[str, typing.Any] = {},
|
488
488
|
inputs: dict[str, typing.Any] = {},
|
@@ -525,7 +525,7 @@ def execute(
|
|
525
525
|
# get caller's path (take into account trace frame)
|
526
526
|
caller = Path(traceback.extract_stack()[-3].filename)
|
527
527
|
path = Path(caller.parent / path).resolve().absolute()
|
528
|
-
prompt = load(path, config_name)
|
528
|
+
prompt = load(str(path), config_name)
|
529
529
|
|
530
530
|
# prepare content
|
531
531
|
content = prepare(prompt, inputs, merge_sample)
|
@@ -538,7 +538,7 @@ def execute(
|
|
538
538
|
|
539
539
|
@trace(description="Execute a prompty")
|
540
540
|
async def execute_async(
|
541
|
-
prompt: Union[str, Prompty],
|
541
|
+
prompt: Union[str, Path, Prompty],
|
542
542
|
connection: dict[str, typing.Any] = {},
|
543
543
|
options: dict[str, typing.Any] = {},
|
544
544
|
inputs: dict[str, typing.Any] = {},
|
@@ -581,7 +581,7 @@ async def execute_async(
|
|
581
581
|
# get caller's path (take into account trace frame)
|
582
582
|
caller = Path(traceback.extract_stack()[-3].filename)
|
583
583
|
path = Path(caller.parent / path).resolve().absolute()
|
584
|
-
prompt = await load_async(path, config_name)
|
584
|
+
prompt = await load_async(str(path), config_name)
|
585
585
|
|
586
586
|
# prepare content
|
587
587
|
content = await prepare_async(prompt, inputs, merge_sample)
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION = "1.0.0a2"
|
@@ -94,12 +94,12 @@ class AzureOpenAIProcessor(Invoker):
|
|
94
94
|
elif isinstance(data, ImagesResponse):
|
95
95
|
item: ImagesResponse = data
|
96
96
|
|
97
|
-
if len(
|
97
|
+
if item.data is None or len(item.data) == 0:
|
98
98
|
raise ValueError("Invalid data")
|
99
|
-
elif len(
|
100
|
-
return
|
99
|
+
elif len(item.data) == 1:
|
100
|
+
return item.data[0].url if item.data[0].url else item.data[0].b64_json
|
101
101
|
else:
|
102
|
-
return [
|
102
|
+
return [i.url if i.url else i.b64_json for i in item.data]
|
103
103
|
|
104
104
|
elif isinstance(data, Iterator):
|
105
105
|
|
@@ -371,7 +371,14 @@ class Prompty:
|
|
371
371
|
default: Union[Callable[[], dict[str, typing.Any]], None] = None,
|
372
372
|
) -> dict[str, typing.Any]:
|
373
373
|
|
374
|
-
if isinstance(value, dict)
|
374
|
+
if isinstance(value, dict):
|
375
|
+
# check for minimal set of properties
|
376
|
+
if "type" not in value:
|
377
|
+
if "sample" in value:
|
378
|
+
# if sample is present, type is not required
|
379
|
+
value["type"] = get_json_type(type(value["sample"]))
|
380
|
+
else:
|
381
|
+
raise ValueError(f"{cls.__name__} type is required or must be inferred from sample")
|
375
382
|
return {**value}
|
376
383
|
else:
|
377
384
|
if default is not None:
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"question": {
|
3
|
+
"sample": "What kind of clothing do you suggest?"
|
4
|
+
},
|
5
|
+
"customer": {
|
6
|
+
"sample": {
|
7
|
+
"id": 2,
|
8
|
+
"firstName": "Sally",
|
9
|
+
"lastName": "Davis"
|
10
|
+
}
|
11
|
+
},
|
12
|
+
"documentation": {
|
13
|
+
"sample": [
|
14
|
+
{
|
15
|
+
"id": "17",
|
16
|
+
"name": "RainGuard Hiking Jacket",
|
17
|
+
"price": 110,
|
18
|
+
"category": "Hiking Clothing",
|
19
|
+
"brand": "MountainStyle",
|
20
|
+
"description": "Introducing the MountainStyle RainGuard Hiking Jacket - the ultimate solution for weatherproof comfort during your outdoor undertakings! Designed with waterproof, breathable fabric, this jacket promises an outdoor experience that's as dry as it is comfortable. The rugged construction assures durability, while the adjustable hood provides a customizable fit against wind and rain. Featuring multiple pockets for safe, convenient storage and adjustable cuffs and hem, you can tailor the jacket to suit your needs on-the-go. And, don't worry about overheating during intense activities - it's equipped with ventilation zippers for increased airflow. Reflective details ensure visibility even during low-light conditions, making it perfect for evening treks. With its lightweight, packable design, carrying it inside your backpack requires minimal effort. With options for men and women, the RainGuard Hiking Jacket is perfect for hiking, camping, trekking and countless other outdoor adventures. Don't let the weather stand in your way - embrace the outdoors with MountainStyle RainGuard Hiking Jacket!"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"id": "3",
|
24
|
+
"name": "Summit Breeze Jacket",
|
25
|
+
"price": 120,
|
26
|
+
"category": "Hiking Clothing",
|
27
|
+
"brand": "MountainStyle",
|
28
|
+
"description": "Discover the joy of hiking with MountainStyle's Summit Breeze Jacket. This lightweight jacket is your perfect companion for outdoor advntures. Sporting a trail-ready, windproof design and a water-resistant fabric, it's ready to withstand any weather. The breathable polyester material and adjustable cuffs keep you comfortable, whether you're ascending a mountain or strolling through a park. And its sleek black color adds style to function. The jacket features a full-zip front closure, adjustable hood, and secure zippered pockets. Experience the comfort of its inner lining and the convenience of its packable design. Crafted for night trekkers too, the jacket has reflective accents for enhanced visibility. Rugged yet chic, the Summit Breeze Jacket is more than a hiking essential, it's the gear that inspires you to reach new heights. Choose adventure, choose the Summit Breeze Jacket."
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"id": "10",
|
32
|
+
"name": "TrailBlaze Hiking Pants",
|
33
|
+
"price": 75,
|
34
|
+
"category": "Hiking Clothing",
|
35
|
+
"brand": "MountainStyle",
|
36
|
+
"description": "Meet the TrailBlaze Hiking Pants from MountainStyle, the stylish khaki champions of the trails. These are not just pants; they're your passport to outdoor adventure. Crafted from high-quality nylon fabric, these dapper troopers are lightweight and fast-drying, with a water-resistant armor that laughs off light rain. Their breathable design whisks away sweat while their articulated knees grant you the flexibility of a mountain goat. Zippered pockets guard your essentials, making them a hiker's best ally. Designed with durability for all your trekking trials, these pants come with a comfortable, ergonomic fit that will make you forget you're wearing them. Sneak a peek, and you are sure to be tempted by the sleek allure that is the TrailBlaze Hiking Pants. Your outdoors wardrobe wouldn't be quite complete without them."
|
37
|
+
}
|
38
|
+
]
|
39
|
+
}
|
40
|
+
}
|
@@ -1 +0,0 @@
|
|
1
|
-
VERSION = "1.0.0a1"
|
@@ -1,34 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"question": "What kind of clothing do you suggest?",
|
3
|
-
"customer": {
|
4
|
-
"id": 2,
|
5
|
-
"firstName": "Sally",
|
6
|
-
"lastName": "Davis"
|
7
|
-
},
|
8
|
-
"documentation": [
|
9
|
-
{
|
10
|
-
"id": "17",
|
11
|
-
"name": "RainGuard Hiking Jacket",
|
12
|
-
"price": 110,
|
13
|
-
"category": "Hiking Clothing",
|
14
|
-
"brand": "MountainStyle",
|
15
|
-
"description": "Introducing the MountainStyle RainGuard Hiking Jacket - the ultimate solution for weatherproof comfort during your outdoor undertakings! Designed with waterproof, breathable fabric, this jacket promises an outdoor experience that's as dry as it is comfortable. The rugged construction assures durability, while the adjustable hood provides a customizable fit against wind and rain. Featuring multiple pockets for safe, convenient storage and adjustable cuffs and hem, you can tailor the jacket to suit your needs on-the-go. And, don't worry about overheating during intense activities - it's equipped with ventilation zippers for increased airflow. Reflective details ensure visibility even during low-light conditions, making it perfect for evening treks. With its lightweight, packable design, carrying it inside your backpack requires minimal effort. With options for men and women, the RainGuard Hiking Jacket is perfect for hiking, camping, trekking and countless other outdoor adventures. Don't let the weather stand in your way - embrace the outdoors with MountainStyle RainGuard Hiking Jacket!"
|
16
|
-
},
|
17
|
-
{
|
18
|
-
"id": "3",
|
19
|
-
"name": "Summit Breeze Jacket",
|
20
|
-
"price": 120,
|
21
|
-
"category": "Hiking Clothing",
|
22
|
-
"brand": "MountainStyle",
|
23
|
-
"description": "Discover the joy of hiking with MountainStyle's Summit Breeze Jacket. This lightweight jacket is your perfect companion for outdoor advntures. Sporting a trail-ready, windproof design and a water-resistant fabric, it's ready to withstand any weather. The breathable polyester material and adjustable cuffs keep you comfortable, whether you're ascending a mountain or strolling through a park. And its sleek black color adds style to function. The jacket features a full-zip front closure, adjustable hood, and secure zippered pockets. Experience the comfort of its inner lining and the convenience of its packable design. Crafted for night trekkers too, the jacket has reflective accents for enhanced visibility. Rugged yet chic, the Summit Breeze Jacket is more than a hiking essential, it's the gear that inspires you to reach new heights. Choose adventure, choose the Summit Breeze Jacket."
|
24
|
-
},
|
25
|
-
{
|
26
|
-
"id": "10",
|
27
|
-
"name": "TrailBlaze Hiking Pants",
|
28
|
-
"price": 75,
|
29
|
-
"category": "Hiking Clothing",
|
30
|
-
"brand": "MountainStyle",
|
31
|
-
"description": "Meet the TrailBlaze Hiking Pants from MountainStyle, the stylish khaki champions of the trails. These are not just pants; they're your passport to outdoor adventure. Crafted from high-quality nylon fabric, these dapper troopers are lightweight and fast-drying, with a water-resistant armor that laughs off light rain. Their breathable design whisks away sweat while their articulated knees grant you the flexibility of a mountain goat. Zippered pockets guard your essentials, making them a hiker's best ally. Designed with durability for all your trekking trials, these pants come with a comfortable, ergonomic fit that will make you forget you're wearing them. Sneak a peek, and you are sure to be tempted by the sleek allure that is the TrailBlaze Hiking Pants. Your outdoors wardrobe wouldn't be quite complete without them."
|
32
|
-
}
|
33
|
-
]
|
34
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{prompty-1.0.0a1 → prompty-1.0.0a2}/tests/hello_world-goodbye_world-hello_again.embedding.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|