퇴근5분전

 

0. 프로그램은 서브모니터에 띄워놓고 게임을 한다.

   : 등록된 커런시 시세를 ninja api로 수집해온다. ( 20분에 1회 )

1. 게임에서 아이템 보기위해 ALT 누르면 아이템 정보ㄹ 띄워주고 1, 2 등급은 색상으로 구분... 

2. 해당 아이템 옵션에서 1,2등급은 기본 선택모드( 해제가능 ), 최저가 시세 클릭 

   : 해당 옵션으로 올라와있는 아이템 가격정보를 표시한다. 

     -- 7일 이내 올라온 매물로 제한 가능.

     -- 7개 정도를 확인 한다. 

           = 조건 ! 전체 매물수의 5% 위치에서 시작해서 3개씩 건너뛰어 총 7개 정도를 가져와 시세 확인을 한다.

           = 5% 위치는 트랙바를 움직여 변경 가능.

      ! 거래소API가 한번에 Search 100건. 한번에 매물정보를 조회가능한게 최대 9건이었다. 

        그래서 안전하게 7건까지만 가져오는데... 만약 7일이내 매물이 부족하면 다음 7건씩 조회하여 총 7개의 매물을 맞춘다.

 

** 아이템 (영문/한글) 표시 정보를 json으로 가져오는데 일부 누락된게 있다? ( 공식사이트 api인데...? )

   "병 안에 서신" --- 이번 올플레임시즌 아이템인데.. 없더라. ( 닌자엔 시세가 있는데... )

   보니까 다른 오버레이 개발팀?에서는 게임 설치 파일 중 일부를 분석해서 쓴다는 것 같다.

 

재밌었다.

 

 

 POE 란 게임을 하는데... 장사를 안하니까 재화가 너무 부족해 ... 

트레이드 오버레이 프로그램 들이 있긴 한데.. 기왕이면 만들까? 라고 생각이 되서... 

만들기 시작했다.

 

1. 게임에서 ALT 누르면 아이템 상세가 뜨니까... 그때 동작하도록 만들었다. 

 

2. POE는 모든 아이템들이 재화라서... 값어치를 모르기에... (레어 아이템)은 트레이드로 가격시세정보를 볼 수 있게...

   필터정보를 보내서 받은 매물들의 하위 5% 정도의 위치부터 3개씩 건너 뛰어서 10개를 조회하여 판매 최소값을 정하려 한다. 

   :: 너무 자주 요청하면? API가 짤린다? 블럭시킨다 하니... --> 레어 아이템만? 

   :: Alt 눌렀을때 아이템 정보를 표시해주고 -> 시세확인은 버튼으로... 확인

 

3. 커런시와 갑충석 등... 닌자에 표시된 재화 중 --> 내가 즐겨찾기 한 재화들만 Ninja에 표시된 시세만 표시. 

 

* API 는 확인 완료.

* 게임내 ALT 키를 누르면 오버레이 프로그램과 연계 처리 완료. 

- 닌자 정보들 API로 다운로드 ( 다음주 )

- 거래소 필터 정보 처리 ( 다음주 )

- UI쪽 꾸미기 ( 다다음주...) 

 

계획을 잡으면 대략 추석전엔 끝나겠다.

 

일단 로컬AI는 낮에 공부해야 하니... 

----------------------------------------------------

AI 진짜 무섭긴 무섭다.

오버레이 만들면서 이런 저런 질문을 던져봤는데... 

게다가 관심사분리 코드까지도 만들어주는 걸 보면서.. '나보다 나은데?' ... 

또 AI한테 배운다...

----------------------------------------------------

26-09-07  아이템 정보 파싱이랑, 닌자 시세 가져오는 건 끝났다. 

이제... 아이템 시세 처리만 남았네...

얼마나 난관이 있으려나.. 

--- 게임 창 위에 아이템 정보 띄우기.

    1등급, 2등급 옵션만 색칠해놨음.

 

26-09-08 --------------------------------- ---------------------------------

- 아이템 속성을 필터 조건까지 변환하는 것을 성공... 

     : 내가 가진 아이템들의 대부분 확인해봤는데... 문제는 필터링 데이타를 보니.. 진짜 골때림. 

     : 트레이드 오버레이들 진짜 어떻게 이걸 처리 했나 싶을 정도였다. 

     : 필터 보면 어떤 껀 숫자가 하드코딩 되어있고 어떤건 수치화 되어 있고...

    누락되는건 필터 조건들을 체크해서 switch로 처리 해놨는데.. 하다 보면 또 나오겠지?  

  - 재화 시세도 볼 수 있게... 

     : 거래소, 보관함이 api가 따로 있네?... 

 

26-09-09 --------------------------------------------------------------------

1차 완성... api 최저가 시세도 볼 수 있게 완성..

 

 

올라마( 라마3.1, 라마3.2 ) + 시멘틱 커널(c#) 조합으로 로컬 AI를 구성하고 

몇일 가지고 놀아봤는데... 

 

프롬프트가 개짜증나네...ㅡ.,ㅡ;;;

 

MSI 노트북 4060( 8GB )으로 돌리는데... 

파워쉘:

 ollama ps  

결과 :: 사용하는 자원이 뭔지 보여준다. 처음엔 CPU 100% 떴는데... 설정 바꾸고 GPU100%가 뜬다.

 

처음엔 GPU타는줄 알고 있다가 작업관리자로 GPU0(내장), GPU1(외장)을 보니 내장? 그리고 CPU로 동작하는 것을 보고

드라이버도 업데이트하고 

시스템 > 디스플레이 > 그래픽

       > 앱추가 로 올라마, 올라마서버, 올라마 앱을 등록해놓고 

       > 각 앱별로 GPU 기본 설정을 "고성능(NVIDIA Geforce RTX 4060 Laptop GUP)"

       > 설정 후 재부팅. 

 

이후로 GPU가 동작하는 것을 보고. 프롬프트를 이리 저리 바꿔보는데...

로컬AI라서 그런지??? 크롬-제미나이, 엣지-코파일럿 에 동일한 질의문을 던졌을때와는 결과 값을 받는게 너무 다르다. 

  다른점! 제미나이, 코파일럿은 일정하게 앞에 붙는 문구들을 제약하면 제대로 값이 나온다. 

       이 라마3.1이나 3.2는 제약을 해도 쌩까고 붙여준다. 

       예시) "결과: 30" 이 나오는데 "결과:" 붙이지 말라고 해도 붙어서 온다.

 

이상한 설명이 붙거나, 하지 말라고 지시문에 넣어도 "결과:" 이게 붙네?... 

이렇게 되면 로컬AI에서 받은 답변을 또 뭔가 바꾸고 해야 하는데...

 

-----------

llama3.2 로 지정하면 GPU 전용 메모리 2.5GB가 할당되는걸 볼 수 있다. 

llama3.1 로 지정하면 GPU 전용 메모리 4.5GB가 할당되는걸 볼 수 있다.

 

시멘틱커널로 호출할때 지정할 수 있는데... 바꾸면 메모리 바뀌는 것도 보이는데...

 

프롬프트가 각 버전마다 좀 달라져야 하는 것 같다. 

동일한 프롬프트로 버전만 바꾸면 적용이 안된다. 

프롬프트를 잘 못 작성해서 그런가? 이거 쉽지 않네.

 

----------------

프롬프트 인식을 제대로 못해서 gemma2:9b-instruct-q4_K_M으로 모델을 바꿨다.

대신 플러그인 기능을 사용할 수 없으니... 프롬프트에 데이타를 묶어서 던지는 것으로 바꾼다.

 llama3.1, llama3.2는 

"10, 20, 30 중 15보다 큰 것들을 보여줘." 라고 보내면

온갖 문구들을 가져다 붙인다. 그래서 temperature=0 으로 보냈는데도 붙인다. 

미사여구, 설명, 친절하지 말라등등.. 다 붙여봤는데... 소용없다. 

그리고 10, 20, 30을 결과로 줄때도 있었다. 

이걸 올라마 콘솔에서 해보면 제대로 준다. 시멘틱커널에서 보낼때 뭔가 작용하는 듯 하고... 

 

모델을 바꾸고 해보면 gpu전용메모리에 6GB를 점유한다. 

'속담까지는 모르네...'