cat-llm 0.0.73__tar.gz → 0.0.74__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.
- {cat_llm-0.0.73 → cat_llm-0.0.74}/PKG-INFO +2 -1
- {cat_llm-0.0.73 → cat_llm-0.0.74}/README.md +1 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/__about__.py +1 -1
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/text_functions.py +21 -5
- {cat_llm-0.0.73 → cat_llm-0.0.74}/.gitignore +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/LICENSE +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/pyproject.toml +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/CERAD_functions.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/__init__.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/build_web_research.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/calls/CoVe.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/calls/__init__.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/calls/all_calls.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/image_functions.py +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/images/circle.png +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/images/cube.png +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/images/diamond.png +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/images/overlapping_pentagons.png +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/images/rectangles.png +0 -0
- {cat_llm-0.0.73 → cat_llm-0.0.74}/src/catllm/model_reference_list.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cat-llm
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.74
|
4
4
|
Summary: A tool for categorizing text data and images using LLMs and vision models
|
5
5
|
Project-URL: Documentation, https://github.com/chrissoria/cat-llm#readme
|
6
6
|
Project-URL: Issues, https://github.com/chrissoria/cat-llm/issues
|
@@ -200,6 +200,7 @@ Processes each text response individually, assigning one or more categories from
|
|
200
200
|
- `safety` (bool, default=False): Enable safety checks on responses and saves to CSV at each API call step
|
201
201
|
- `to_csv` (bool, default=False): Whether to save results to CSV
|
202
202
|
- `chain_of_verification` (bool, default=False): Enable Chain-of-Verification prompting technique for improved accuracy
|
203
|
+
- `chain_of_thought` (bool, default=False): Enable Chain-of-Thought prompting technique for improved accuracy
|
203
204
|
- `step_back_prompt` (bool, default=False): Enable step-back prompting to analyze higher-level context before classification
|
204
205
|
- `context_prompt` (bool, default=False): Add expert role and behavioral guidelines to the prompt
|
205
206
|
- `filename` (str, default="categorized_data.csv"): Filename for CSV output
|
@@ -171,6 +171,7 @@ Processes each text response individually, assigning one or more categories from
|
|
171
171
|
- `safety` (bool, default=False): Enable safety checks on responses and saves to CSV at each API call step
|
172
172
|
- `to_csv` (bool, default=False): Whether to save results to CSV
|
173
173
|
- `chain_of_verification` (bool, default=False): Enable Chain-of-Verification prompting technique for improved accuracy
|
174
|
+
- `chain_of_thought` (bool, default=False): Enable Chain-of-Thought prompting technique for improved accuracy
|
174
175
|
- `step_back_prompt` (bool, default=False): Enable step-back prompting to analyze higher-level context before classification
|
175
176
|
- `context_prompt` (bool, default=False): Add expert role and behavioral guidelines to the prompt
|
176
177
|
- `filename` (str, default="categorized_data.csv"): Filename for CSV output
|
@@ -260,6 +260,7 @@ def multi_class(
|
|
260
260
|
safety = False,
|
261
261
|
to_csv = False,
|
262
262
|
chain_of_verification = False,
|
263
|
+
chain_of_thought = True,
|
263
264
|
step_back_prompt = False,
|
264
265
|
context_prompt = False,
|
265
266
|
filename = "categorized_data.csv",
|
@@ -397,12 +398,27 @@ def multi_class(
|
|
397
398
|
extracted_jsons.append(default_json)
|
398
399
|
#print(f"Skipped NaN input.")
|
399
400
|
else:
|
401
|
+
if chain_of_thought:
|
402
|
+
prompt = f"""{survey_question_context}
|
400
403
|
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
404
|
+
Categorize this survey response "{response}" into the following categories that apply:
|
405
|
+
{categories_str}
|
406
|
+
|
407
|
+
Let's think step by step:
|
408
|
+
1. First, identify the main themes mentioned in the response
|
409
|
+
2. Then, match each theme to the relevant categories
|
410
|
+
3. Finally, assign 1 to matching categories and 0 to non-matching categories
|
411
|
+
|
412
|
+
{examples_text}
|
413
|
+
|
414
|
+
Provide your reasoning for each category, then provide your final answer in JSON format where the number belonging to each category is the key and a 1 if the category is present and a 0 if it is not present as key values."""
|
415
|
+
else:
|
416
|
+
|
417
|
+
prompt = f"""{survey_question_context} \
|
418
|
+
Categorize this survey response "{response}" into the following categories that apply: \
|
419
|
+
{categories_str}
|
420
|
+
{examples_text}
|
421
|
+
Provide your work in JSON format where the number belonging to each category is the key and a 1 if the category is present and a 0 if it is not present as key values."""
|
406
422
|
|
407
423
|
if context_prompt:
|
408
424
|
context = """You are an expert researcher in survey data categorization.
|
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
|