Itinai.com ai compare futuristic offices of it companies imag bd053794 6fd3 4953 afc4 ed7b98162e8d 3

Инструмент проверки обоснованности с использованием Upstage API и LangChain

Itinai.com ai compare futuristic offices of it companies imag bd053794 6fd3 4953 afc4 ed7b98162e8d 3

Возможности создания инструмента проверки обоснованности с использованием Upstage API и LangChain

В современном мире, где информация доступна на каждом шагу, надежность данных становится критически важной. Для разработчиков ИИ, научных работников и бизнес-менеджеров существует необходимость в инструментах, которые могут подтвердить достоверность и обоснованность выводов, сделанных на основе ИИ. Один из таких инструментов — это сервис проверки обоснованности от Upstage, который можно интегрировать с LangChain для создания мощного решения по верификации контента.

Что такое сервис проверки обоснованности Upstage?

Сервис проверки обоснованности Upstage предлагает API, который позволяет пользователям проверять, насколько надежно содержание, сгенерированное ИИ, основано на фактических источниках. С помощью этого API можно отправлять пары контекст-ответ и мгновенно получать оценку уверенности в том, что ответ поддерживается предоставленным контекстом. Это особенно полезно для тех, кто стремится повысить доверие к своим ИИ-системам и обеспечить точность в процессе принятия решений.

Настройка окружения

Для начала работы необходимо установить необходимые пакеты:

pip install -qU langchain-core langchain-upstage

Затем следует настроить API-ключ Upstage в среде:

import os
os.environ["UPSTAGE_API_KEY"] = "Ваш API ключ здесь"

Создание класса AdvancedGroundednessChecker

Класс AdvancedGroundednessChecker оборачивает API проверки обоснованности Upstage в удобный интерфейс, который позволяет выполнять как одиночные, так и пакетные проверки. В классе предусмотрены методы для извлечения метки уверенности из каждого ответа и вычисления общей статистики точности по всем проверкам.

class AdvancedGroundednessChecker:
    def __init__(self):
        self.checker = UpstageGroundednessCheck()
        self.results = []
   
    def check_single(self, context: str, answer: str) -> Dict[str, Any]:
        request = {"context": context, "answer": answer}
        response = self.checker.invoke(request)
        result = {
            "context": context,
            "answer": answer,
            "grounded": response,
            "confidence": self._extract_confidence(response)
        }
        self.results.append(result)
        return result
   
    def batch_check(self, test_cases: List[Dict[str, str]]) -> List[Dict[str, Any]]:
        batch_results = []
        for case in test_cases:
            result = self.check_single(case["context"], case["answer"])
            batch_results.append(result)
        return batch_results
   
    def _extract_confidence(self, response) -> str:
        if hasattr(response, 'lower'):
            if 'grounded' in response.lower():
                return 'high'
            elif 'not grounded' in response.lower():
                return 'low'
        return 'medium'
   
    def analyze_results(self) -> Dict[str, Any]:
        total = len(self.results)
        grounded = sum(1 for r in self.results if 'grounded' in str(r['grounded']).lower())
        return {
            "total_checks": total,
            "grounded_count": grounded,
            "not_grounded_count": total - grounded,
            "accuracy_rate": grounded / total if total > 0 else 0
        }

Запуск проверок обоснованности

Рассмотрим примеры выполнения одиночных проверок обоснованности:

result1 = checker.check_single(
    context="Маунт Кеа — это неактивный вулкан на острове Гавайи.",
    answer="Маунт Кеа высотой 5,207.3 метра."
)
result2 = checker.check_single(
    context="Python — это высокоуровневый язык программирования, созданный Гвидо ван Россумом в 1991 году.",
    answer="Python был создан Гвидо ван Россумом и ориентирован на читаемость кода."
)

Пример пакетной обработки

Пакетная обработка позволяет выполнять несколько проверок одновременно:

test_cases = [
    {
        "context": "Шекспир написал Ромео и Джульетту в конце 16 века.",
        "answer": "Ромео и Джульетта была написана Шекспиром."
    },
    {
        "context": "Скорость света составляет примерно 299,792,458 метров в секунду.",
        "answer": "Свет движется со скоростью около 300,000 километров в секунду."
    }
]
batch_results = checker.batch_check(test_cases)

Анализ результатов

После выполнения проверок важно проанализировать результаты:

analysis = checker.analyze_results()
print(f"Всего выполненных проверок: {analysis['total_checks']}")
print(f"Обоснованные ответы: {analysis['grounded_count']}")
print(f"Необоснованные ответы: {analysis['not_grounded_count']}")
print(f"Уровень обоснованности: {analysis['accuracy_rate']:.2%}") 

Многоуровневая проверка

Проведение многоуровневых проверок позволяет продемонстрировать, как Upstage обрабатывает обоснованность в различных областях:

domains = {
    "Наука": {
        "context": "Фотосинтез — это процесс, при котором растения преобразуют солнечный свет, углекислый газ и воду в глюкозу и кислород.",
        "answer": "Растения используют фотосинтез для производства пищи из солнечного света и CO2."
    },
    "История": {
        "context": "Вторая мировая война закончилась в 1945 году после капитуляции Японии.",
        "answer": "Вторая мировая война закончилась в 1944 году с капитуляцией Германии."
    }
}
for domain, test_case in domains.items():
    result = checker.check_single(test_case["context"], test_case["answer"])

Создание отчета о тестировании

Генерация подробного отчета о тестировании позволяет подвести итоги:

def create_test_report(checker_instance):
    report = {
        "summary": checker_instance.analyze_results(),
        "detailed_results": checker_instance.results,
        "recommendations": []
    }
    accuracy = report["summary"]["accuracy_rate"]
    if accuracy < 0.7:
        report["recommendations"].append("Рекомендуется пересмотреть процесс генерации ответов")
    if accuracy > 0.9:
        report["recommendations"].append("Высокая точность - система работает хорошо")
    return report

Заключение

В этой статье мы рассмотрели:

  • Основы проверки обоснованности
  • Возможности пакетной обработки
  • Многоуровенные тестирования
  • Анализ результатов и отчетность
  • Реализацию расширенного интерфейса

С помощью сервиса проверки обоснованности от Upstage пользователи получают масштабируемое решение для верификации фактов в реальном времени и оценки уверенности. Интегрируя этот сервис в свои рабочие процессы, организации могут повысить надежность выводов, созданных ИИ, и поддерживать строгие стандарты фактической целостности во всех приложениях.

Для дальнейшего изучения рекомендуем посетить сайт Upstage для получения дополнительных ресурсов и документации.

Новости в сфере искусственного интеллекта