mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-28 08:28:00 -05:00
Compare commits
3 Commits
master
...
feat/text-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0862e8086 | ||
|
|
b1259e0bdd | ||
|
|
5244bd94fc |
68
autogpt_platform/backend/backend/blocks/encoder_block.py
Normal file
68
autogpt_platform/backend/backend/blocks/encoder_block.py
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
"""Text encoding block for converting special characters to escape sequences."""
|
||||||
|
|
||||||
|
import codecs
|
||||||
|
|
||||||
|
from backend.data.block import (
|
||||||
|
Block,
|
||||||
|
BlockCategory,
|
||||||
|
BlockOutput,
|
||||||
|
BlockSchemaInput,
|
||||||
|
BlockSchemaOutput,
|
||||||
|
)
|
||||||
|
from backend.data.model import SchemaField
|
||||||
|
|
||||||
|
|
||||||
|
class TextEncoderBlock(Block):
|
||||||
|
"""
|
||||||
|
Encodes a string by converting special characters into escape sequences.
|
||||||
|
|
||||||
|
This block is the inverse of TextDecoderBlock. It takes text containing
|
||||||
|
special characters (like newlines, tabs, etc.) and converts them into
|
||||||
|
their escape sequence representations (e.g., newline becomes \\n).
|
||||||
|
"""
|
||||||
|
class Input(BlockSchemaInput):
|
||||||
|
"""Input schema for TextEncoderBlock."""
|
||||||
|
|
||||||
|
text: str = SchemaField(
|
||||||
|
description="A string containing special characters to be encoded",
|
||||||
|
placeholder="Your text with newlines and quotes to encode",
|
||||||
|
)
|
||||||
|
|
||||||
|
class Output(BlockSchemaOutput):
|
||||||
|
"""Output schema for TextEncoderBlock."""
|
||||||
|
|
||||||
|
encoded_text: str = SchemaField(
|
||||||
|
description="The encoded text with special characters converted to escape sequences"
|
||||||
|
)
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__(
|
||||||
|
id="5185f32e-4b65-4ecf-8fbb-873f003f09d6",
|
||||||
|
description="Encodes a string by converting special characters into escape sequences",
|
||||||
|
categories={BlockCategory.TEXT},
|
||||||
|
input_schema=TextEncoderBlock.Input,
|
||||||
|
output_schema=TextEncoderBlock.Output,
|
||||||
|
test_input={"text": """Hello
|
||||||
|
World!
|
||||||
|
This is a "quoted" string."""},
|
||||||
|
test_output=[
|
||||||
|
(
|
||||||
|
"encoded_text",
|
||||||
|
"""Hello\\nWorld!\\nThis is a "quoted" string.""",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
async def run(self, input_data: Input, **kwargs) -> BlockOutput:
|
||||||
|
"""
|
||||||
|
Encode the input text by converting special characters to escape sequences.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
input_data: The input containing the text to encode.
|
||||||
|
**kwargs: Additional keyword arguments (unused).
|
||||||
|
|
||||||
|
Yields:
|
||||||
|
The encoded text with escape sequences.
|
||||||
|
"""
|
||||||
|
encoded_text = codecs.encode(input_data.text, "unicode_escape").decode("utf-8")
|
||||||
|
yield "encoded_text", encoded_text
|
||||||
37
docs/integrations/block-integrations/encoder_block.md
Normal file
37
docs/integrations/block-integrations/encoder_block.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Text Encoder
|
||||||
|
|
||||||
|
## What it is
|
||||||
|
A tool that converts text containing special characters into escaped text sequences.
|
||||||
|
|
||||||
|
## What it does
|
||||||
|
It takes a string of text that contains special characters (like new lines or quotation marks) and converts them into their escape sequence representations (like '\n' for new lines).
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
The Text Encoder examines the input text and identifies special characters. It then replaces these characters with their escape sequence equivalents, making the text safe for storage or transmission in formats that don't support raw special characters.
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
| Input | Description |
|
||||||
|
|-------|-------------|
|
||||||
|
| Text | The text you want to encode, which may contain special characters like new lines or quotation marks |
|
||||||
|
|
||||||
|
## Outputs
|
||||||
|
| Output | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| Encoded Text | The text after processing, with all special characters converted to their escape sequences |
|
||||||
|
|
||||||
|
## Possible use case
|
||||||
|
Imagine you have a piece of text with line breaks that you need to store in a JSON file or send through an API:
|
||||||
|
|
||||||
|
```
|
||||||
|
Hello
|
||||||
|
World!
|
||||||
|
This is a "quoted" string.
|
||||||
|
```
|
||||||
|
|
||||||
|
The Text Encoder can convert it into:
|
||||||
|
|
||||||
|
```
|
||||||
|
Hello\nWorld!\nThis is a "quoted" string.
|
||||||
|
```
|
||||||
|
|
||||||
|
This is useful when you need to prepare text for storage in formats that require escape sequences, or when sending data to systems that expect encoded text. It's the inverse operation of the Text Decoder block.
|
||||||
Reference in New Issue
Block a user