ИИ-агент в когнитивном программировании сознания – объединяем RAG и LLM - страница 3
```
Результат – преобразованные данные в едином формате JSON.
1.3.2 Структурирование данных
Пример: Разделение данных по ключевым категориям
При обработке собранной информации важно выделить ключевые поля, такие как заголовок, категория и ключевые слова. Для этого создайте функцию, которая добавляет недостающие поля и унифицирует структуру.
```python
def structure_data(raw_data, category):
structured_data = []
for item in raw_data:
structured_data.append({
"title": item.get("title", "Без названия"),
"category": category,
"content": item.get("content", ""),
"keywords": item.get("keywords", [])
})
return structured_data
# Пример исходных данных
raw_data = [
{"title": "Модель командного мышления", "content": "Описание модели…"},
{"content": "Описание когнитивных процессов…"}
]
structured = structure_data(raw_data, "Теория")
print(json.dumps(structured, ensure_ascii=False, indent=4))
```
Результат: добавлены заголовки и категории, что упрощает дальнейшую обработку.
1.3.3 Конвертация данных
Пример: Автоматическая обработка всех файлов в директории
Напишите скрипт, который обрабатывает файлы разных форматов и сохраняет их в едином формате JSON.
```python
def process_directory(input_dir, output_dir):
for filename in os.listdir(input_dir):
file_path = os.path.join(input_dir, filename)
if filename.endswith(".csv"):
csv_to_json(file_path, os.path.join(output_dir, filename.replace(".csv", ".json")))
elif filename.endswith(".txt"):
txt_to_json(file_path, os.path.join(output_dir, filename.replace(".txt", ".json")), "Кейсы")
elif filename.endswith(".json"):
# Дополнительная обработка JSON (если требуется)
pass
process_directory("./raw_data", "./processed_data")
```
Этот подход обеспечивает унификацию данных на основе их типа.
1.3.4 Формирование структуры для работы с данными
Пример: Структура базы знаний для когнитивного тренажера
Создайте JSON-файл, который будет хранить данные по ключевым тематикам.
```json
[
{
"title": "Основы когнитивного программирования",
"category": "Теория",
"content": "Когнитивное программирование – это метод…",
"keywords": ["основы", "когнитивное программирование", "теория"]
},
{
"title": "Кейс: Внедрение когнитивных моделей",
"category": "Кейсы",
"content": "Этот кейс описывает, как компания…",
"keywords": ["кейсы", "внедрение", "когнитивные модели"]
}
]
```
Такая структура обеспечивает удобный доступ к информации для алгоритмов RAG.
1.3.5 Проверка данных после унификации
Пример: Тестирование корректности структуры
После конвертации проверьте, что все данные соответствуют заданному формату, используя Python:
```python
def validate_data(data):
required_keys = ["title", "category", "content", "keywords"]
for item in data:
for key in required_keys:
if key not in item:
print(f"Ошибка: отсутствует ключ '{key}' в элементе {item['title']}")
print("Все данные проверены.")
# Пример проверки
with open("processed_data.json", "r", encoding="utf-8") as f:
data = json.load(f)
validate_data(data)
```
Этот процесс гарантирует, что все данные готовы к интеграции в когнитивный тренажер.
Данные примеры позволяют систематизировать данные, обеспечивая их подготовленность для дальнейшего использования в системе RAG и языковой модели.
1.4 Создание базы знаний
Форматы базы знаний:
Таблицы: Используйте для хранения кратких фактов, терминов или определений.
Инструменты: SQLite, PostgreSQL.
Граф знаний: Постройте граф с узлами (понятия, события) и ребрами (отношения между ними).