■ ChatOllama 클래스의 생성자에서 format 인자를 사용해 JSON 포맷으로 출력하는 방법을 보여준다. (phi4:latest 모델)
▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
from langchain_core.prompts import ChatPromptTemplate from langchain_ollama import ChatOllama chatPromptTemplate = ChatPromptTemplate.from_template("{location} 여행지 10곳을 알려주세요. key : `places`. resonse in JSON format.") chatOllama = ChatOllama(model = "phi4:latest", format = "json", temperature = 0) runnableSequence = chatPromptTemplate | chatOllama responseAIMessage = runnableSequence.invoke({"location" : "유럽"}) print(responseAIMessage.content) """ { "places": [ { "name": "파리", "country": "프랑스", "description": "세계적으로 유명한 관광지로, 에펠탑, 루브르 박물관, 성모 마리아 대성당 등이 있습니다." }, { "name": "로마", "country": "이탈리아", "description": "고대 로마의 유적지인 콜로세움과 포럼, 베네치안 광장 등을 방문할 수 있습니다." }, { "name": "베니스", "country": "이탈리아", "description": "캐나레지오와 세인트 마크 대성당, 빌라 프란체스카 등을 갖춘 수상 도시입니다." }, { "name": "암스테르담", "country": "네덜란드", "description": "캐나레지오, 렌트하우스, 트린타이트 교회 등을 볼 수 있는 도시입니다." }, { "name": "런던", "country": "영국", "description": "대영 박물관, 타워 브리지, 버킹엄 궁전 등 다양한 명소가 있습니다." }, { "name": "비엔나", "country": "오스트리아", "description": "호프부르크 궁전과 실러 극장, 잉글스 호수 등을 방문할 수 있습니다." }, { "name": "바르셀로나", "country": "스페인", "description": "계단의 집과 성 페드로 대성당, 카탈루냐 궁전 등이 있는 도시입니다." }, { "name": "아테네", "country": "그리스", "description": "아크로폴리스와 파르테논 신전, 아고라 등 고대 유적지가 많습니다." }, { "name": "프라하", "country": "체코", "description": "티인 궁전과 체코 국립 박물관, 스트라호비차 등을 볼 수 있습니다." }, { "name": "브뤼셀", "country": "벨기에", "description": "애틀리 광장과 그로테스크, 암스테르담 거리 등을 방문할 수 있습니다." } ] } """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
annotated-types==0.7.0 anyio==4.8.0 certifi==2024.12.14 charset-normalizer==3.4.1 exceptiongroup==1.2.2 h11==0.14.0 httpcore==1.0.7 httpx==0.27.2 idna==3.10 jsonpatch==1.33 jsonpointer==3.0.0 langchain-core==0.3.29 langchain-ollama==0.2.2 langsmith==0.2.10 ollama==0.4.5 orjson==3.10.14 packaging==24.2 pydantic==2.10.5 pydantic_core==2.27.2 PyYAML==6.0.2 requests==2.32.3 requests-toolbelt==1.0.0 sniffio==1.3.1 tenacity==9.0.0 typing_extensions==4.12.2 urllib3==2.3.0 |
※ pip install langchain-ollama 명령을 실행했다.