강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của thisisyurimpark
thisisyurimpark

câu hỏi đã được viết

Phát triển AI Agent sử dụng LangGraph (feat. MCP)

2.2 Agent Retrieval đơn giản (feat. Mẹo xử lý trước PDF hữu ích)

pyzerox 유니코드 에러

Viết

·

40

0

py-zerox로 문서를 md파일로 바꿀 때 인코딩 관련 에러가 납니다..

 

image.pngimage.png

 

  • 다른 분께서 올려주신 글 보고 print(result) 부분을 아래와 같이 바꿔보기도 했었는데, 에러는 동일하게 나네요...

    •  

      with open("./docs/income_tax.md", "w", encoding="utf-8") as f:
          f.write(str(result))

       

       

  •  

    result = asyncio.run(main())
    

    무엇보다 md파일 자체가 생성되지 않고, 이 부분에서 에러가 나는데, 해결 방법이 없을지 궁금합니다

 

프롬프트엔지니어링llmai-agentlanggraphmcp

Câu trả lời 2

0

jasonkang님의 프로필 이미지
jasonkang
Người chia sẻ kiến thức

안녕하세요 혹시 강의에서 활용한 버전을 똑같이 활용하셨을까요? 말씀하신 것처럼 인코딩 문제가 맞는데, asyncio.run()을 통해서 .md가 생성이 되어야 하는거라 with open() 과는 크게 관계가 없는 것 같습니다

asyncio.run() 전에 아래 내용을 한번 추가해서 다시 동작해보시겠어요?

import sys
sys.stdout.reconfigure(encoding="utf-8")
sys.stderr.reconfigure(encoding="utf-8")

result = asyncio.run(main())
Yurim Park님의 프로필 이미지
Yurim Park
Người đặt câu hỏi

답변 감사드립니다

 

저처럼 문제 겪고 계신 분들 계실까봐 혹시 몰라 남깁니다!

py-zerox 버전도 동일하게 했고, 지웠다가 다시 설치해봐도 유니코드 에러가 떠서 패키지 내부에 들어가봤습니다

<본인가상환경>\Lib\site-packages\pyzerox\core\zerox.py
에 보시면, 아래 코드처럼 encoding="utf-8" 이 없었다는 걸 확인할 수 있었고,

encoding="utf-8" 추가하고 IDE 재시작하니까 정상적으로 돌아갔습니다

  • 추가로 생성된 md 파일이 깨져보인다(euc-kr로 바꿔야 정상적으로 보인다는) 는 글도 본 것 같은데, 이 부분도 같이 해결되었습니다!

        if output_dir:
            result_file_path = os.path.join(output_dir, f"{file_name}.md")
            async with aiofiles.open(result_file_path, "w", encoding="utf-8") as f:
                await f.write("\n\n".join(aggregated_markdown))
jasonkang님의 프로필 이미지
jasonkang
Người chia sẻ kiến thức

공유해주셔서 감사합니다! 자주 묻는 질문에 등록해 두어야겠네요. 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. Yurim Park님.

문서를 마크다운(.md) 파일로 변환할 때 발생하는 인코딩 오류는 주로 Windows 시스템에서 발생하는 문제입니다. 원인은 기본 인코딩 설정이 ‘cp949’로 되어 있어 UTF-8 문자를 인코딩할 수 없어서 발생하는 것입니다.

해결 방법

  1. 파일 쓰기 인코딩을 명시적으로 설정:

이미 시도해주신 것처럼 open() 함수를 사용할 때 encoding='utf-8'을 명시적으로 설정하는 것이 중요합니다. 함수 내에서 데이터를 다룰 때도 일관되게 UTF-8 인코딩을 사용하는 것이 좋습니다.

   with open("./docs/income_tax.md", "w", encoding="utf-8") as f:
       f.write(str(result))
  1. 출력 인코딩 설정:

Python의 기본 출력 인코딩을 UTF-8로 변경할 수도 있습니다. 이 경우, 터미널이나 IDE에서도 UTF-8을 처리할 수 있도록 설정해야 합니다.

  1. 콘솔 환경 설정:

Windows에서는 콘솔 기본 환경의 인코딩을 UTF-8로 설정하시기 바랍니다. 명령 프롬프트에서 chcp 65001을 입력하여 콘솔의 코드 페이지를 65001(UTF-8)로 변경할 수 있습니다.

   chcp 65001
  1. 라이브러리 사용 시 주의:

만약 사용하는 라이브러리의 내부에서 인코딩 문제가 반복된다면, 해당 라이브러리의 소스 코드나 API 문서를 참고하여 인코딩을 명시적으로 설정할 수 있는지 확인하는 것도 하나의 방법입니다.

  1. 참고 자료:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của thisisyurimpark
thisisyurimpark

câu hỏi đã được viết

Đặt câu hỏi