나는 요리에서 어려움을 겪는 에이전트 AI를 만들었습니다.

나는 요리에서 어려움을 겪는 에이전트 AI를 만들었습니다.

오늘날 요리하는 방법을 아는 것은 축복이지만 과소 평가되었습니다. 그것은 당신의 음식에 들어가는 것에 대한 통제, 즉 접시에 소금이나 설탕이 얼마나 많은지, 성분의 신선한 지, 식사가 건강 목표와 얼마나 잘 맞는지를 통제 할 수있게합니다. 기분이 좋아지고, 더 오래 사는 것이 중요합니다. 그렇습니다.

개인적으로 요리를 시작했을 때 가장 큰 좌절은 YouTube 튜토리얼을 통해 끝없이 스크롤하기 위해 계단이나 재료를 중간에 잊어 버리는 것이 었습니다. 각각은 다른 버전을 가졌습니다. 먼저 끓여서 먼저 볶습니다. 추가하고, 건너 뛰기 – 그것은 요리의 기회 게임을하는 것과 같았습니다. 모든 일시 정지, 되감기 및 두 번째 추측은 내가 그렇게하는 것을 두려워하는 지점까지 지쳤다.

이제 그 단계를 지나서, 나는 여전히 요리에 압도당하는 다른 사람들을 돕기 위해 대화식 에이전트 AI 요리 조수를 만들기 시작했습니다. 단계 목록을 버리는 대신 침착하고 고무적인 Sous-Chef와 같은 것을 안내합니다. 그것은 당신이 가진 것에 적응하여 프로세스를보다 직관적이며 스트레스를 줄입니다.

처음에는 Google Colab 에서이 프로젝트 작업을 시작했지만 GPU 제한으로 인해 Kaggle 노트북으로 전환했습니다. 아래의 노트북 코드를 적절한 순서로 공유하고 있습니다.

from huggingface_hub import login

# Login using your Hugging Face token
login(token='your_actual_token_here')

위의 코드에서는 개인 액세스 토큰을 사용하여 Hugging Face Hub에 로그인합니다. 여기에서 토큰을 생성하는 방법에 대한 지침을 찾을 수 있습니다. 나는 Hugging Face를 사용하여 최첨단 미리 훈련 된 모델을 활용하고 기본 인프라 관리에 대해 걱정하지 않고 요리 보조원에 완벽하게 통합하고 있습니다. 토큰으로 로그인하면 게이트 또는 개인 모델을 포함하여 이러한 대형 미리 훈련 된 모델에 안전하게 액세스하고 사용할 수 있습니다.

!pip install transformers --quiet
from transformers import pipeline

# Load the Mistral 7B Instruct model 
generator = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.1", device_map="auto", trust_remote_code=True)

여기서는 변압기 라이브러리를 설치하고 파이프 라인 API를 통해 Mistral-7B Instruct 모델을 초기화하여 명령 조정 텍스트 생성을 수행합니다. 이를 통해 조수는 처음부터 모델을 훈련 시키거나 호스팅 할 필요없이 미리 훈련 된 LLM을 활용하여 조수가 즉시 요리 단계를 생성 할 수 있습니다.

나는 Mistral-7B 지시를 사용하고 있습니다. 지침을 따르고 일관된 응답을 생성하도록 미세 조정 된 오픈 가중 언어 모델이기 때문입니다. 그것은 단계별 지침과 같은 작업에 적합하여 요리 보조원에게 적합합니다. 즉, 그것은 단 하나의 옵션 일뿐입니다. Meta ‘Llama-2, Google의 Gemma, Openchat 등과 같은 다른 명령 조정 모델로 쉽게 교체 할 수 있습니다.

이것을 실행하면 내 출력이 아래에서 보입니다.

그림 2. Hugging Face의 Transformers 라이브러리를 사용한 Mistral-7b 지시 모델을로드하는 출력그림 2. Hugging Face의 Transformers 라이브러리를 사용한 Mistral-7b 지시 모델을로드하는 출력

def get_step(dish, step_num):
    prompt = (
        f"You are an expert chef teaching someone to cook {dish}.\n"
        f"Give step-by-step cooking instructions.\n"
        f"What is step {step_num}?"
    )
    output = generator(prompt, max_new_tokens=100, do_sample=True, temperature=0.7)[0]['generated_text']
    
    # Clean output (remove prompt echoing if needed)
    cleaned = output.strip().split(f"What is step {step_num}?")[-1].strip()
    return "\n".join(cleaned.split("\n"))  # Return all lines

get_step (접시, step_num) 함수는 단계 번호에 따라 주어진 접시에 대한 특정 요리 단계를 생성합니다. 두 가지 입력이 필요합니다. 접시 – 사용자가 요리하고자하는 요리의 이름이며 step_num – 레시피의 단계에 해당합니다. 이 기능은 접시에 대한 단계별 지침을 요청하는 프롬프트를 생성 하고이 프롬프트를 (생성기를 통해) 언어 모델로 전달합니다. 모델은 요청 된 요리 단계를 생성하고 출력을 청소하여 반복적 인 텍스트 또는 프롬프트의 반향을 제거합니다. 마지막으로, 함수는 단계를 형식화 된 문자열로 반환하여 명확성을 위해 각 선을 Newline 문자로 분리합니다.

def clarify_step(step):
    prompt = f"Explain this cooking step in detail: {step}"
    return generator(prompt, max_new_tokens=150, do_sample=True, temperature=0.7)[0]['generated_text'].strip()

CLECIFY_STEP (단계) 함수는 주어진 요리 지침에 대한 자세한 설명을 제공합니다. 단일 입력이 필요합니다. 단계**, ** 이전에 생성 된 짧은 요리 단계입니다. 이 기능은 언어 모델 에이 단계를 더 자세히 설명하도록 요구하는 프롬프트를 만듭니다. 이 프롬프트는 발전기로 전달되어 단계에 대한보다 포괄적 인 설명을 반환합니다. 그런 다음 출력은 선행 및 후행 공백을 제거하고 깨끗하고 자세한 설명 문자열로 반환됩니다.

def agentic_cooking_guide():
    print("👩‍🍳 Welcome to your AI Sous-Chef!")
    dish = input("🍽️ What would you like to cook today? ").strip()

    step_num = 1
    while True:
        step = get_step(dish, step_num)
        print(f"\n🪜 Step {step_num}: {step}")
        user_input = input("👉 Type 'next', 'repeat', 'explain', or 'stop': ").strip().lower()

        if user_input == "next":
            step_num += 1
        elif user_input == "repeat":
            continue
        elif user_input == "explain":
            print("🧠 Explanation:", clarify_step(step))
        elif user_input == "stop":
            print("✅ Cooking session ended. Enjoy your meal!")
            break
        else:
            print("⚠️ Please type 'next', 'repeat', 'explain', or 'stop'.")

agentic_cooking_guide () 함수는 AI Cooking Assistant의 대화식 경험을 유도합니다. 그것은 사용자를 맞이하고 그들이 요리하고 싶은 요리를 묻는 것으로 시작합니다. 그런 다음 요리 과정의 각 단계를 통해 사용자를 걷는 루프로 들어갑니다. 모든 단계마다 get_step () 함수를 호출하여 해당 명령을 생성하고 표시합니다. 사용자는 4 가지 옵션 중에서 선택할 수 있습니다.

  • “다음”은 다음 단계로 이동합니다
  • “반복”은 현재 단계를 재생합니다 (특히 우리가 말한 것을 놓친 경우 음성 조수 설정과 관련이 있습니다).
  • “설명”은 단계에 대한보다 자세한 설명을 위해 CLECIFY_STEP () 함수를 트리거합니다.
  • “정지”는 세션을 종료합니다.

사용자가 이러한 옵션 이외의 다른 것을 입력하면 어시스턴트가 다시 시도하라는 메시지가 표시됩니다. 이 과정은 어시스턴트가 적응 형 반응이 좋은 요리 안내서가 사용자의 요구에 맞게 조정합니다.

agentic_cooking_guide()

agentic_cooking_guide () 함수는 대화식 AI Cooking Assistant를 시작하는 진입 점 역할을합니다. 그것은 사용자와의 단계별 대화 세션을 시작하여지지적인 sous-chef와 같은 레시피를 안내합니다. 이것을 실행하면 내 출력이 아래에서 보입니다.

그림 3. 프라이드 치킨 레시피의 에이전트 AI 요리 보조원의 출력그림 3. 프라이드 치킨 레시피의 에이전트 AI 요리 보조원의 출력

기본 명령을 넘어서 어시스턴트의 유연성을 확장해야하기 때문에 이것은 시작점입니다. 다음,,, 반복하다,,, 설명하다 그리고 멈추다. 그러나 그것은 탄탄한 기초를 마련하고 에이전트 AI의 잠재력을 명확하게 엿볼 수 있습니다. 요리 보조원에게 적용했지만 기본 개념은 다양한 영역에서 수많은 다른 문제로 확장 될 수 있습니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다