728x90
반응형

목적은

  • 문서기반으로 LLM의 성능을 향상 즉 답변을 정확하게...
  • 문서는 특정 기업/문화의 내부의 것이므로, 특정 서비스를 위한 챗봇을 개발할 수 있음.

이며, 수단은

  • LangChain 의 프레임워크

를 이용하면 쉽다.

 

개발 과정 및  주요 공정 흐름은

 

 

과 같습니다.

1. 우선 글자와 관련된 코퍼스를 문서로부터 확보하여야 합니다.

2. Embedding Model을 만듭니다.

3. Vector database를 만듭니다.

4. 검색된 문서기반 Context와 질의어(Prompt)를 LLM에 입력으로 넣어,

5. 좀 더 구체적이고 명확하고, 우리 경우에 맞는   결과를 얻게 합니다.

 

 

 

 

728x90
반응형
728x90
반응형

수행 코드

arr = [40, 70, 60, 30, 10, 50]

print( " Initial Status = ", arr)
for i in range(len(arr)-1):
    print( "i = ", i)
    small_idx = i
    for j in range(i+1, len(arr)):     #comparion 
        print( small_idx)
        if arr[small_idx]>arr[j]:
            small_idx = j
    arr[i], arr[small_idx] = arr[small_idx], arr[i]   #swap    
    print( " small_idx = ", small_idx )
    print( "  Partial Result = ", arr)

print("Final: ")
print(arr)

 

수행결과 화면

PS D:\PythonCode> python .\SelectionSorting.py
 Initial Status =  [40, 70, 60, 30, 10, 50]
i =  0
0     
0
0
3
4
 small_idx =  4
  Partial Result =  [10, 70, 60, 30, 40, 50]
  
i =  1
1
2
3
3
 small_idx =  3
  Partial Result =  [10, 30, 60, 70, 40, 50]
  
i =  2
2
2
4
 small_idx =  4
  Partial Result =  [10, 30, 40, 70, 60, 50]
  
i =  3
3
4
 small_idx =  5
  Partial Result =  [10, 30, 40, 50, 60, 70]
  
i =  4
4
 small_idx =  4
  Partial Result =  [10, 30, 40, 50, 60, 70]
  
Final:
[10, 30, 40, 50, 60, 70]
PS D:\PythonCode>

 

 

수행결과 분석

 

728x90
반응형
728x90
반응형

수행 코드

dataSourceAligned = [15,20,29,30,37, 55, 69, 73, 87, 90]

def my_index( toSearchValue, dataSource ):
    sizeData = len( dataSource )
    low = 0
    high = sizeData-1

    nTrials = 0
    while( low <= high ):
        middle = int((low+high)/2)
        nTrials += 1
        #print(" Trial :" , nTrials, "middle : ", middle )
        if( dataSource[middle] == toSearchValue ):
            #print("탐색 성공 at" , middle, "index" )
            break
        elif( toSearchValue >= dataSource[middle] ):
            low = middle + 1
        else:
            high = middle - 1        

    if( low<= high):
        return middle
    else:
        return -1

toSearchValue = 30
index = my_index( toSearchValue,  dataSourceAligned)
if( index >=0 ):
    print("Found", toSearchValue, "value",  "at", index, "index" )
else:
    print("NOT Found", toSearchValue, "value" )

 

 

수행결과 화면

PS D:\PythonCode> python .\BinarySearch.py
Found 30 value at 3 index
PS D:\PythonCode>
728x90
반응형
728x90
반응형

수행 코드

dataSource = [12,10,25,5,7,96]

indexValue = 0
toSearchValue = 10

sizeData = len( dataSource )
#print("sizeData =", sizeData )

while( indexValue < sizeData ):
    if( dataSource[indexValue] == toSearchValue ):
        print("탐색 성공 at" , indexValue, "index" )
        break
    indexValue += 1

if(indexValue == sizeData ):
    print( toSearchValue, "를 찾지 못함")
print("Done", flush=True)

 

 

수행결과

PS D:\PythonCode> python .\LinearSeach.py
탐색 성공 at 1 index
Done
PS D:\PythonCode>
728x90
반응형

+ Recent posts