Rasa 오류 디버그

이것은 Rasa와python의'랜덤'오류(그리고 오류를 복구하는 방법)의 간단한 요약입니다. Rasa를 사용하여 채팅 로봇을 개발할 때 이러한 오류를 만날 수 있습니다.어떤 것은 상당히 모호하다. 시간이 지나면 그것들을 식별하는 데 익숙해지고, 다른 때는 그렇지 않을 것이다.
나는 이 게시물이 매우 이기적이라는 것을 인정한다. 나에게 있어서 더 중요한 것은 내가 기억하지 못할 때 나는 수시로 한 위치를 참고할 수 있지만 이것은 몇몇 옛 친구들이 라사 장면을 이해하는 데 도움이 될 것이라는 것을 안다.
재구매 계약 https://github.com/jwheat/rasa-errors 으로 발표하겠습니다. 따라서 업데이트/수정 또는 제가 놓친 새로운 오류 (현재 새로운 테스트 버전이 있음) 가 있으면 언제든지 끌어오기 요청을 보내주십시오. 저는 그것들을 합병할 것입니다.
이제 더 이상 군말할 필요가 없다. 여기는 잘못이고, 특정한 순서가 없다. 내가 지난 몇 달 동안 이 글을 번역할 때 만났던 순서를 제외하고는.

AttributeError: "str"객체에는 "setdefault"속성이 없습니다.
File "c:\users\jonathan\anaconda3\envs\rasa\lib\site-packages\rasa\core\domain.py", line 290, in _transform_intent_properties_for_internal_use
    properties.setdefault(USE_ENTITIES_KEY, True)
AttributeError: 'str' object has no attribute 'setdefault'
유형:구문 오류
파일: domain.yml어디 가세요:intents:-특히use_entities: []솔루션:
  • : 사이의 공간 확보
  • 모회사 명칭에서 당신의 []가 정확하게 축소되었는지 확인하세요.
    다음은 양호한 축진 실천의 예이다
  • intents:
      - enter_data:
        use_entities: []
    

    AttributeError: "bool"객체에 "get"속성이 없습니다.
    File "c:\users\jonathan\anaconda3\envs\rasa\lib\site-packages\rasa\core\domain.py", line 265, in collect_slots
        slot_class = Slot.resolve_by_type(slot_dict[slot_name].get("type"))
    AttributeError: 'bool' object has no attribute 'get'
    
    유형:구문 오류
    파일: use_entities: []어디 가세요: domain.yml문제: 들여쓰기 슬롯 속성
    해결 방안: 슬롯 정의는 끊임없이 증가하는 축소 집합을 필요로 한다.슬롯의 slots:type, auto_fill 및 기타 모든 속성을 슬롯 이름 아래로 들여쓰기
    내가 한 일: 나는 과거의 코드를 자주 사용했다. 당신이 indening이 있는 블록을 지나갈 때, VScode는 자동으로 축소하는 것을 좋아하기 때문에, 나의 축소는 닫힌 경우가 많다. 나는 매우 바빠서 그것이 잘못된 것임을 발견하지 못했다.말할 필요도 없이, 이것은 내가 가장 자주 범하는 잘못이다.
    다음은 올바른 슬롯 들여쓰기 예입니다.
    slots:
      customer_first_name:
        type: unfeaturized
        auto_fill: true
    

    피크발리피.코어 - ["Value'None"은 dict.Value 경로가 아닙니다:'/slots']
    유형:구문 오류
    파일: initial_value어디 가세요: domain.yml문제: 들여쓰기 슬롯 이름 및/또는 슬롯이 목록이나 배열에 맞는 경우 누락slots:해결 방안: 상기 오류와 유사하게 슬롯 정의도 끊임없이 증가하는 축소와 적당한 - 문자를 사용해야 한다.슬롯 이름이 - 키 아래에서 올바르게 들여쓰기되는지 확인하고 하이픈이 모두 있거나 없는지 확인합니다.
    내가 한 일: 때로는 네가 하이픈이 있어도 들여쓰기는 닫힌다.나는 일부 사용자 정의 플러그인을 가지고 있는데, 그 중에는 사전 (여러 개의 연결 문자 항목) 이 있고, 때로는 잊어버릴 수도 있다 slots:다음은 올바른 슬롯 들여쓰기 예입니다.
    slots:
      risk_level:
        type: categorical
        values:
          - low
          - medium
          - high
    

    라사?핵심움직여.작업 - 작업 양식 change customer first name 추출 슬롯 클라이언트 first name 을 사용할 수 없습니다.
    유형:맞춤법/이름 지정 오류
    파일: -, actions.py어디 가세요: 당신 domain.yml의python 플러그인 코드, 특히 당신 actions.py의python 플러그인 이름
    질문: 슬롯 이름이 일치하지 않습니다(일명 맞춤법 오류).
    해결 방안: - 이것은 이름/맞춤법 문제일 가능성이 높습니다.actions.py 파일에서 참조하는 슬롯 이름이 도메인의 슬롯 및/또는 응답과 일치하는지 확인합니다.yml 파일.
    내가 한 일: 때때로 나는 새 플러그인에python 코드를 작성해서 내 domain.yml 파일에 추가하는 것을 잊어버리거나, 머릿속에서 이름을 바꾸고, 어디에서 업데이트하는 것을 잊어버린다.

    TypeError:유형 이외의 객체는 편집할 수 없습니다.
    유형:
    파일: domain.yml보기 위치: 필수 슬롯 방법
    문제는 다음과 같습니다.
    원하는 슬롯이 반환되지 않습니다.채팅에서 선택한 경로가 아무런 내용도 되돌려주지 않는 경로를 초래할 수 있는 플러그인if 논리가 있을 수 있습니다.
    솔루션:actions.py 방법의 끝에 return []를 추가하는 것은 바람직하지 않은 빠른 공격이다.이catch-all은 항상 빈 목록을 되돌려주고 이 방법의 실제 기능을 만족시킬 것입니다.
    더 좋은 해결 방안은if논리를 추적하여 채팅의 경로를 처리하고 필요한 슬롯의 실제 목록(심지어 하나)을 되돌려주는 것이다.
    리포 (https://github.com/jwheat/rasa-errors 를 보고 이 업데이트를 가져오거나, 변경되거나 새로운 오류가 추가될 경우, 드래그 요청을 보내주십시오.

    좋은 웹페이지 즐겨찾기