주요 콘텐츠로 건너뛰기
버전: 1.0.0

외부 도구 호출

도구 호출은 이전에는 존재하지 않았던 진정한 'LLM 네이티브' 상호작용 모드 중 하나입니다. 이는 새로운 지식을 습득하고 실제 작업을 수행할 때 '생각하는' LLM에게 '행동'할 수 있는 능력을 부여합니다. 이는 모든 에이전트 애플리케이션에서 매우 중요한 부분입니다.

오픈 소스 LLM은 점점 더 도구 사용에 능숙해지고 있습니다. 이제 Llama 3 모델을 통해 노트북에서 실행되는 8b급 LLM에서 안정적인 도구 호출 성능을 확보할 수 있게 되었습니다!

이 튜토리얼에서는 로컬 LLM이 로컬 컴퓨터에서 코드를 실행하고 데이터를 조작할 수 있는 간단한 Python 프로그램을 보여드리겠습니다!

전제 조건

공개 URL을 통해 LLM 서비스를 제공하려면 Gaia 노드가 준비되어 있어야 합니다. 다음을 수행할 수 있습니다.

이 튜토리얼에서는 함수 호출을 지원하는 퍼블릭 라마3 노드를 사용하겠습니다.

속성가치
API 엔드포인트 URLhttps://llamatool.us.gaianet.network/v1
모델 이름llama
API 키가이아

데모 에이전트 실행

에이전트 앱은 Python으로 작성되었습니다. 이 앱은 LLM이 도구를 사용하여 SQL 데이터베이스를 작동하는 방법을 보여줍니다. 이 경우 인메모리 SQLite 데이터베이스를 시작하고 작동합니다. 데이터베이스에는 할 일 항목 목록이 저장됩니다.

코드를 다운로드하고 다음과 같이 Python 종속성을 설치합니다.

git clone https://github.com/second-state/llm_todo
cd llm_todo
pip install -r requirements.txt

방금 설정한 API 서버와 모델 이름에 대한 환경 변수를 설정합니다.

export OPENAI_MODEL_NAME="llama"
export OPENAI_BASE_URL= "https://llamatool.us.gaianet.network/v1"

실행 main.py 애플리케이션을 클릭하고 명령줄 채팅 인터페이스를 불러옵니다.

python main.py

에이전트 사용

이제 LLM에 작업을 수행하도록 요청할 수 있습니다. 예를 들어 다음과 같이 말할 수 있습니다.

사용자: 
마케팅 팀과 회의를 하러 가는데 적을 수 있게 도와주세요.

LLM은 데이터베이스에 레코드를 삽입해야 한다는 것을 이해하고 도구 호출 응답을 JSON으로 반환합니다.

Assistant:
<tool_call>
{"id": 0, "name": "create_task", "arguments": {"task": "have a meeting with the marketing team"}}
</tool_call>

상담원 앱(예 main.py)는 도구 호출을 실행합니다. create_task 를 JSON 응답으로 반환하고, 결과를 role 도구. 에서 자동으로 수행되므로 여기서 아무것도 할 필요가 없습니다. main.py. 에이전트 앱이 도구 호출을 실행하면 SQLite 데이터베이스가 업데이트됩니다.

Tool:
[{'result': 'ok'}]

LLM이 실행 결과를 수신한 다음 응답합니다.

어시스턴트:
작업 목록에 "마케팅 팀과 회의하기"를 추가했습니다. 또 하고 싶은 일이 있나요?

대화를 계속할 수 있습니다.

도구 호출의 작동 방식에 대해 자세히 알아보려면 이 문서를 참조하세요.

견고하게 만들기

LLM 애플리케이션의 주요 문제 중 하나는 응답이 자주 불안정하다는 점입니다. 예를 들어

LLM이 사용자의 쿼리를 처리하지 못하는 잘못된 도구 호출을 생성하는 경우,

를 사용하면 각 도구 호출 함수에 대한 설명을 세분화하고 최적화할 수 있습니다. LLM은 이러한 설명을 기반으로 도구를 선택하므로 일반적인 사용자 쿼리와 일치하는 방식으로 도구를 만드는 것이 중요합니다.

LLM이 존재하지 않는 함수 이름이나 잘못된 매개 변수를 사용하여 도구 호출을 생성하는 경우,

에이전트 앱은 이 문제를 식별하고 LLM에 새 응답을 생성하라는 메시지를 표시해야 합니다.

도구 호출은 진화하는 에이전트 LLM 애플리케이션 분야의 기본 기능입니다. 여러분의 혁신적인 아이디어를 기다리고 있습니다!