랭체인 과제 1, 2차 과제를 모두 수행 완료 했습니다.
Langchain은 처음이고, Python도 자격증(빅데이터분석기사) 실기시험 때나
머신러닝 관련 강좌 들을 때만 잠깐씩 써본거라 생각보다 시간이 오래 걸렸습니다 T.T
과제 결과물은 거의 다 비슷할테니 괜히 다르게 시도했다 고생했던 과제 2가지를 공유 드리고자 합니다.
1. 버전이 높다고 꼭 좋은건 아니다
랭체인 1-5(SQL 데이터베이스 쿼리하기) 과제를 수행할 때 아무 생각 없이
모델을 ChatGPT ‘gpt-4o’로 설정했는데 계속 이상한 에러 메시지가 나서
고생했습니다 T.T
# Model and Parser model = ChatOpenAI(model="gpt-4o", temperature=0) parser = StrOutputParser()
디버깅을 위해 SQL Query를 만드는 부분, Query문을 실행하는 부분 등을 단계적으로 나누어 실행하면서 출력을 확인해 봅니다
execute_query = QuerySQLDataBaseTool(db=db) query_chain = create_sql_query_chain(model, db) response = query_chain.invoke({"question": "How many employers are there?"}) print(response)
“How many employers are there?”라는 질문을 Query로 바꿔달라고 했더니
```sql SELECT COUNT(*) AS "NumberOfEmployees" FROM "Employee"; ```
쓸데 없이 ‘‘‘sql … ‘‘‘ 으로 query문을 감싸 놓았습니다. 이를 제거하기 위해 prompt에 SQL query문만 남기라고 써봐도 소용이 없네요.
혹시나 하는 마음에 ChatGPT 모델을 3.5로 변경해 봤습니다
# Model and Parser model = ChatOpenAI(model="gpt-3.5-turbo") parser = StrOutputParser()
Query문이 어떻게 변했을까요?
쓸데없는 사족이 사라지고 깔끔하게 원하는 Query문만 남았습니다.
SELECT COUNT("EmployeeId") AS TotalEmployees FROM "Employee"
Query를 만드는 부분, 실행하는 부분, SQL 실행 결과를 보고 답을 만다는 prompt 등을 모두 chain으로 엮어서 한번에 실행해 봅니다.