thumbnail thumbnail

2024-04-10 Flask Http 통신

포스트

현재 저는 2개의 서버를 어떤 방식으로 데이터를 전달 받게 하는지에 대해 고민하고 있었습니다.

<상황>

DB 에서 불러온 task 의 데이터를 http 통신을 통해서 랭체인이 적용된 flask 서버 포트 5000 에 전달해주고 응답으로 LangChain 이 적용된 task 정보가 자연어로 process 되는 것을 목표로 하였습니다. task ms 로 부터 json list 데이터를 받고 LangChain agent 가 이를 가공해 다시 json 형태로 반환 후 text 의 부분 만을 전달하게 하려 코드를 작성하였습니다.

<결과>

하지만 type 의 문제 때문에 flask 자체에서는 json 을 잘 반환하여 주지만 내가 원하는 content json 정보만을 보여주는 것이 아닌 불필요한 정보들 까지 가져가 task ms 에 넘겨주니 task ms 에서 오류가 발생하는 상황이 되었습니다. 이를 해결하기 위해서 flask 가 제공하는 jsonily 를 사용해 parsing 을 진행했고 결과 여전히 잘못된 json 값을 전달하는 바람에 discord 에서 문자열 초과 입력 오류가 발생하게 되었습니다. (discord는 한국어 4000 자 까지만 입력 가능하다.)

<해결>

우선 원하는 방식은 json 데이터 중에서 content 의 부분에 해당하는 자연어화 된 내용만을 가져오게 하고 싶기에 다음과 같은 과정을 거칠 필요가 있다 판단 됐습니다.

  1. 1

    LangChain 의 llm 이 원하는 데이터를 뱉어내는지 확인. 자연어의 형태인 json 데이터를 반환하는지 체크해야 합니다.

  1. 2

    LangChain 이 받아낸 데이터를 flask 의 jsonily 가 잘 파싱 해주는지 검사할 필요가 있습니다.

  1. 3

    파싱된 데이터를 task ms 로 보냈을 때 정확히 자연어 문자열이 넘겨지는지 확인할 필요가 있습니다.

이상 3가지의 과정을 거쳐서 만들어 내야 하기에 prompt 의 설계를 좀 더 정확히 할 필요가 있고, 동시에 실행이 되지 않는다면 체인에서 문제되는 부분을 수정할 필요가 있다고 판단 되었습니다.

 

우선 위 3개의 사항을 중심으로 작업을 재개하고 type, json 에 대한 이해도 면에서 부족한 지식을 보강할 필요가 있습니다.