■ ChatOpenAI 클래스의 bind 메소드에서 logprobs 인자를 사용해 출력 토큰에 로그 확률을 추가하는 방법을 보여준다.
※ OPENAI_API_KEY 환경 변수 값은 .env 파일에 정의한다.
▶ 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 |
from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() chatOpenAI = ChatOpenAI(model = "gpt-3.5-turbo-0125") runnableBinding = chatOpenAI.bind(logprobs = True) responseAIMessage = runnableBinding.invoke(("human", "how are you today")) print(responseAIMessage) """ content = "I'm just a computer program, so I don't have feelings or emotions. But I'm here to help you with any questions or tasks you have. How can I assist you today?" response_metadata = { 'token_usage' : {'completion_tokens' : 38, 'prompt_tokens' : 16, 'total_tokens' : 54}, 'model_name' : 'gpt-3.5-turbo-0125', 'system_fingerprint' : None, 'finish_reason' : 'stop', 'logprobs' : { 'content' : [ {'token' : 'I' , 'bytes' : [73 ], 'logprob' : -0.27539697, 'top_logprobs' : []}, {'token' : "'m" , 'bytes' : [39, 109 ], 'logprob' : -0.39702156, 'top_logprobs' : []}, {'token' : ' just' , 'bytes' : [32, 106, 117, 115, 116 ], 'logprob' : -0.23634185, 'top_logprobs' : []}, {'token' : ' a' , 'bytes' : [32, 97 ], 'logprob' : -0.0020874506, 'top_logprobs' : []}, {'token' : ' computer', 'bytes' : [32, 99, 111, 109, 112, 117, 116, 101, 114], 'logprob' : -0.054618873, 'top_logprobs' : []}, {'token' : ' program' , 'bytes' : [32, 112, 114, 111, 103, 114, 97, 109 ], 'logprob' : -5.955704e-05, 'top_logprobs' : []}, {'token' : ',' , 'bytes' : [44 ], 'logprob' : -0.09015965, 'top_logprobs' : []}, {'token' : ' so' , 'bytes' : [32, 115, 111 ], 'logprob' : -0.0021140971, 'top_logprobs' : []}, {'token' : ' I' , 'bytes' : [32, 73 ], 'logprob' : -5.0735965e-05, 'top_logprobs' : []}, {'token' : ' don' , 'bytes' : [32, 100, 111, 110 ], 'logprob' : -0.00158009, 'top_logprobs' : []}, ... ] } } id = 'run-46dbc52d-8e5d-4c1e-a20c-b26318cc2778-0' usage_metadata = {'input_tokens' : 16, 'output_tokens' : 38, 'total_tokens' : 54} """ |
▶ 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 29 30 31 32 |
annotated-types==0.7.0 anyio==4.4.0 certifi==2024.6.2 charset-normalizer==3.3.2 distro==1.9.0 exceptiongroup==1.2.1 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 jsonpatch==1.33 jsonpointer==3.0.0 langchain-core==0.2.9 langchain-openai==0.1.9 langsmith==0.1.82 openai==1.35.3 orjson==3.10.5 packaging==24.1 pydantic==2.7.4 pydantic_core==2.18.4 python-dotenv==1.0.1 PyYAML==6.0.1 regex==2024.5.15 requests==2.32.3 sniffio==1.3.1 tenacity==8.4.2 tiktoken==0.7.0 tqdm==4.66.4 typing_extensions==4.12.2 urllib3==2.2.2 |
※ pip install python-dotenv langchain-openai 명령을 실행했다.