Clean Architecture ๊ธฐ๋ฐํ์ฌ๋คํธ์ํฌ๋ฅผ ์ถ์ํ, ๋ชจ๋ํํ๋ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค Clean Architecture์์ ๋คํธ์ํฌ ๊ณ์ธต์ ๋ค์๊ณผ ๊ฐ์ ๋ ์ด์ด๋ก ๋๋ ์ ์์ต๋๋ค - Domain Layer: ์ฑ์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๊ท์น์ ์ ์ํฉ๋๋ค- Data Layer: ์ธ๋ถ ๋ฐ์ดํฐ ์์ค(๋คํธ์ํฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ)์์ ์ํธ์์ฉ์ ์ฒ๋ฆฌํฉ๋๋ค- Presentation Layer: UI์ ์ํธ์์ฉํ๋ฉฐ, ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค ์ด์ค์์ network ๋ก์ง์ Data Layer์ ํฌํจ๋ฉ๋๋ค. ๋จผ์ ๋คํธ์ํฌ ์ธ์ ์ ๋์ ๊ตฌํํ๋ URLSessionWrapper๋ฅผ ์์ฑํฉ๋๋ค.import Foundationpublic protocol SessionProtocol { func ..
1. Filemanager๋ก ํ์ผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ ์ ๋๋ค. ์ฐ์ ์ฑ ์ธ๋ถ ์ ์ฅ์ ํ์ผ์ ์ ๊ทผํ๊ธฐ ์ํดkey: Supports opening documents in placevalue: yes key: Supports Document Browservalue: yes Info plist์ ๋ฑ๋กํฉ๋๋ค ๋ค์ UIDocumentPickerDelegate๋ฅผ ์ฑํํ๊ณ ํ์ผ์ ์ ํ ์๋ฃํ์๋์ api๋ฅผ ํธ์ถํฉ๋๋ค class ViewController: UIViewController { let documnetPicker: UIDocumentPickerViewController = UIDocumentPickerViewController(forOpeningContentTypes: [.spreadsheet], asCop..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Z875T/btsJiIt2Isx/iUV50LCwpCmk2MOq2IDis0/img.png)
๋ค์ฏ๋ฒ์งธ ์น์ RAG ๊ธฐ๋ฐ ๋ํํ ์ฑ๋ด ๋ง๋ค๊ธฐ์ ๋๋ค. ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋๋ค.!pip install streamlit-chat!pip install streamlit!pip install langchain!pip install faiss-cpu ์ค์น ์ดํ ์ฃผ์์ฒ๋ฆฌ ํด์ค๋๋ค RAG์ ์ฐ์ผ ๋ฐ์ดํฐ๋ PDF์ ๋๋ค.PDF๋ฅผ loadํ ๋ค, ๊ฐ์ ธ์จ ํ ์คํธ๋ฅผ ์๋ฒ ๋ฉ ์ฒ๋ฆฌ ์ดํ ํ์ด์์ค์ ์ ์ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ค๊ณ , open ai key๋ฅผ ์ ๋ ฅํฉ๋๋ค sk-import streamlit as stfrom streamlit_chat import messagefrom langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4fwmb/btsI60vOpjI/LS76L6gKxKR8H0LT8wKky0/img.png)
์ฒซ๋ฒ์งธ ์น์ ๊ฐ๋จํ ์ฑ๋ด ๋ง๋ค๊ธฐ RAG๊ตฌํ์ ๋ฐฉ์์ด ์๋์ฑGPT๋ชจ๋ธ์ ๊ฐ์ ธ์์ ๋ง๋๋ ์ฑ๋ด์ ๋๋ค !pip install langchain!pip install streamlit!pip install openai!pip install langchain_community ๋จผ์ ์๋์ฝ๋ค ๊ฐ์ํ๊ฒฝ์ langchain, streamlit, openai ๋ฅผ ์ค์นํด์ค๋๋ค ๊ทธ๋ฆฌ๊ณ ์ฑ๋ด ์ฝ๋ ์์ฑ import streamlit as stfrom langchain.chat_models import ChatOpenAIst.set_page_config(page_title="๋ฌด์์ด๋ ์ง๋ฌธํ์ธ์~")st.title('๋ฌด์์ด๋ ์ง๋ฌธํ์ธ์~')import osos.environ["OPENAI_API_KEY"] = "sk-"def..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/49sc1/btsI5lNpoH6/LIdHa3Km1J6ao6VBWwaj1K/img.png)
API ํธ์ถ ๋ชจ๋ํ๋ฅผ ํตํด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค. ๊ธฐ์กด์๋ ์ด๋ฐ์์ผ๋ก API๋ฅผ ์์ฑํ์ฌ ํธ์ถํด์ฃผ์์ต๋๋ค //// RequsetAPI.swift// ๋ถ์ฐ ์ฌํ ๋ณต์ง ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ดํ// https://apps.apple.com/kr/app/id1588773594// Created by jh on 2021/09/17.//import Foundationimport Alamofirestruct fetchAPI { private init() { } static let shared = fetchAPI() func getData(numOfRows: Int, PageNo: Int, completion: @escaping (_ data: [Item])..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bc0vZZ/btsISXtf0v2/ACkxyX0WPmNkZOCUlTMog0/img.png)
์ง์ค ํ์ด๋จธ ์ง๊ด์ ์ธ ํ์ด๋จธ๋ก ์ง์ค๋ ฅ์ ๋์ฌ๋ณด์ธ์.๋ฌ๋ ฅ์ ๊ธฐ๋กํ๊ณ , ์ผ๋ง๋ ์ง์คํ๋์ง ๋๋์๋ณด์ธ์. https://apps.apple.com/kr/app/id6605927206 ์ง์ค ํ์ด๋จธ์ง์ค ํ์ด๋จธ๋ ์ง์ค๋ ฅ์ ๋์ด๊ณ ์๊ฐ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํ๋ ๋ฐ ๋์์ ์ฃผ๋ ํ์ ์ ์ธ ํ์ด๋จธ ์ดํ์ ๋๋ค. ๋ ์ฐฝ์ ์ธ ์ํ ํ์ด๋จธ ๋์์ธ์ ํตํด ์ฝ๊ณ ์ง๊ด์ ์ผ๋ก ์๊ฐ์ ์ค์ ํ๊ณ , ์ง์คํ ์ ์apps.apple.com 1. ์ง๊ด์ ์ธ UI๋ก ์ง์ค๋ ฅ์ ๋์ฌ๋ณด์ธ์ 2. ์ง์คํ ์๊ฐ๋ค์ ํ๋์ ์ดํด๋ณด์ธ์ 3. ํ์์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์ฆ ํด๋ณด์ธ์ ์ง์ค ํ์ด๋จธ๋ ์ง์ค๋ ฅ์ ๋์ด๊ณ ์๊ฐ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํ๋ ๋ฐ ๋์์ ์ฃผ๋ ํ์ ์ ์ธ ํ์ด๋จธ ์ดํ์ ๋๋ค. ๋ ์ฐฝ์ ์ธ ์ํ ํ์ด๋จธ ๋์์ธ์ ํตํด ์ฝ๊ณ ์ง๊ด์ ์ผ๋ก ์๊ฐ์ ์ค์ ํ๊ณ ..
์ํฉ์ ์ด๋ ์ต๋๋ค 1. TableView์ data๊ฐ ์ง์์ ์ผ๋ก ๋ณํ๊ณ ์์ต๋๋ค.2. TableView์ ํน์ index๋ง update ํด์ฃผ๋ ค๊ณ ํฉ๋๋ค. (์ค์ ๋ก๋ ๋น๋๊ธฐ ์์ ์ updateํด์ฃผ๋ ์ํฉ) ์ ๊ฐ ๊ฒช์ ๋ฌธ์ ๋ @objc func buttonPressed() { // ๋ฒํผ ๋๋ ์๋ data ๋ณ๊ฒฝ ์ด์ ๋๋ ์ดํ ํ ์ด๋ธ๋ทฐ ์ ๋ฐ์ดํธ ๋๋๋ก DispatchQueue.main.async { self.tableView.reloadRows(at: [IndexPath(row: 3, section: 0)], with: .automatic) } self.dataArray = ["1","2","3","4","5","6"] } s..
TableView์์ ์ ํ๋ cell์ ์ต์์ layer๋ก ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฐ์ cell์ ์ ์ํ ๋, selectedIndex(์ ์ญ๋ณ์)๋ก cell์ ๊ตฌ๋ถํด์คฌ์ต๋๋ค. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.row == selectedIndex { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) cell.layer.zPosition = 1 return cell } el..
UIPageViewController๋ฅผ ๊ตฌํํ๋ ์ค view.addSubview(navigationView)addChild(pageViewController)view.addSubview(pageViewController.view) ๊ฐ ์ปดํฌ๋ํธ1. navigationView(UIView type)2. pageViewController(UIViewController type) ๋ฅผ ํ๋ฉด์ ์ถ๊ฐํ๋ ๋ถ๋ถ์ ์์ด์์ฐจ์ด์ ์ด ์๋ค๋๊ฒ์ ์๊ฒ๋์์ต๋๋ค. addSubview(_:)๋ UIView์ subview๋ฅผ ์ถ๊ฐํ๋ ๋ฉ์๋์ ๋๋ค.UIView ํํ๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ๊ตฌ์. 1. sub ๋ทฐ๋ parent ๋ทฐ์ ์ขํ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉฐ2. parent ๋ทฐ๊ฐ ์ด๋ํ๊ฑฐ๋ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด sub ๋ทฐ ๋ํ ๋ณ๊ฒฝ๋๋ค ๋ ํน์ง์ ๊ฐ์ง๊ณ ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/F6P9U/btsInhj57Bj/XxKCJoaFHo50dehqKq1WQK/img.gif)
LLM ์ด๋ ๋๊ท๋ชจ '์ธ์ด ๋ชจ๋ธ'์ผ๋ก์ปดํจํฐ์๊ฒ ์ธ์ด๋ฅผ ๊ฐ๋ฅด์น๋ ๋ฐฉ๋ฒ ์ด๋ค. ์ฌ๋ฌ๊ฐ์ง ์ธ์ด ๋ชจ๋ธ์ด ์กด์ฌ 1. ํต๊ณ์ ์ธ์ด ๋ชจ๋ธ - ์ด์ฐฝ๊ธฐ ์ธ์ด ๋ชจ๋ธ๋ก ํต๊ณ๋ฅผ ๊ธฐ๋ฐํ์ฌ ํ์ต n-gram ํํThe cat sat on the mat 1-gramThe / cat / sat / on / the / mat 2-gramThe cat / cat sat / sat on ... 3-gramThe cat sat / cat sat on .... -> ํต๊ณ์ ํจํด ํ์ต์ ํตํ ์์ธก๋จ์ : ๋ฌธ๋งฅ ์ดํด๋๊ฐ ๋จ์ด์ง 2. ์ ๊ฒฝ๋ง ์ธ์ด ๋ชจ๋ธ ์ธ๊ฐ์ ๋ด๋ฐ ์ธํฌ๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์ ๋ณด ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ณธ ๋ฐ ๋ง๋ฆ ์ ๋ ฅ์ธต -> ์๋์ธต(๋ฐ์ดํฐ ์ฒ๋ฆฌ, ํจํด ํ์ต) -> ์ถ๋ ฅ์ธต ๋ํ์ ์ธ ์ ๊ฒฝ๋ง ์ธ์ด ๋ชจ๋ธ1) RNN(Recurrent Neura..
- Total
- Today
- Yesterday
- rag ๊ธฐ๋ฐ llm
- swift urlsession network module
- swift ์์ ์ฝ๊ธฐ
- swift urlcomponent encode
- ๊ณต๋ถ ํ์ด๋จธ ์ดํ
- swift network refactoring
- swift network ๊ณตํตํ
- llm pdf rag
- rag ๊ธฐ๋ฐ llm ์ฑ๋ด
- rag llm pdf
- swift urlsession module
- swift ์๊ฐ
- swift excel read
- readysay
- swift ๋คํธ์ํฌ ๋ชจ๋ํ
- ์๋์ํํธ ๋ ์ด์ธ์ด
- focus timer ์ดํ
- swift ์์ ๊ฐ์ ธ์ค๊ธฐ
- ๋ ๋์ธ์ด
- swift filemanager excel
- filemanager excel read
- llm csv
- swift urlsession ๊ณตํตํ
- swift get excel
- chatgpt rag llm
- swift network module
- swift queryitem encode
- swift urlsession refactoring
- ๋ ๋์ธ์ด ์ดํ
- swift filemanager get excel
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |