์ค์๊ฐ ์์ฑ ์คํธ๋ฆฌ๋ฐ ๊ตฌํ์ค ์ง๋ฉดํ ๋ฌธ์ ์ ๋๋ค. ์ฐ์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ 16kHz, Int16, 30ms ๋จ์๋ก buffer๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๊ณ ํ์์ต๋๋ค. let sampleRate: Double = 16000let frameDuration: Double = 0.03 // 100mslazy var audioFrameCount = Int(sampleRate * frameDuration) ์คํธ๋ฆฌ๋ฐ ๋ณด๋ผ๋ ๊ท๊ฒฉ์ ๋ง์ถฐ์ ๋ฆฌ์ํ๋งํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ฃผ์๋๋ฐ // ๋ณํ ํ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ํ ๋ฒ์ ์ ์กlet pcmBuf = AVAudioPCMBuffer(pcmFormat: mixerFormat, frameCapacity: frameCount)!audioInputConverter?.convert(to: pcmBu..
๋ฐฐ๊ฒฝ ๋ฐ์ดํฐ๋ฅผ ํ์ด์ง ๊ตฌ์กฐ๋ก ๋ถ๋ฌ์ค๊ณ ,๊ฐ ๋ฐ์ดํฐ res๊ฐ์ ๋ํด ๋ณ๋๋ก ๋น๋๊ธฐ ์์ธ ์ ๋ณด API์ ์ถ๊ฐ๋ก ์์ฒญํ๊ณ ํ๋ฉด์ ์ถ๋ ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ค ํ์ต๋๋ค. ์ฌ๋ฌ api๊ฐ ๋์์ ํธ์ถ๋์ด์ผํ๋ ์ํฉ์ ๋๋ค. ๋ฌธ์ ์์ธ๊ณผ ํด๊ฒฐ ์ฒ์์๋ ๋จ์ํ๊ฒ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ฒ๋ฆฌํ์ต๋๋ค.func loadPage() async { let page = try await api.fetchPage() for item in page.items { let detail = try await api.fetchDetail(id: item.id) messages.append(detail) } listRelay.accept(messages)} ์ด๋ ๊ฒ ํธ์ถํ์์๋์ ๋ฌธ์ ์ ์์์ฒญ์ด ์์๋๋ก..
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..
๋ค์ฏ๋ฒ์งธ ์น์ 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..
์ฒซ๋ฒ์งธ ์น์ ๊ฐ๋จํ ์ฑ๋ด ๋ง๋ค๊ธฐ 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..
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])..
์ง์ค ํ์ด๋จธ ์ง๊ด์ ์ธ ํ์ด๋จธ๋ก ์ง์ค๋ ฅ์ ๋์ฌ๋ณด์ธ์.๋ฌ๋ ฅ์ ๊ธฐ๋กํ๊ณ , ์ผ๋ง๋ ์ง์คํ๋์ง ๋๋์๋ณด์ธ์. 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..
- Total
- Today
- Yesterday
- chatgpt rag llm
- llm pdf rag
- readysay
- swift ๋คํธ์ํฌ ๋ชจ๋ํ
- ๋ ๋์ธ์ด
- swift ์๊ฐ
- swift network ๊ณตํตํ
- swift git ignore
- rag ๊ธฐ๋ฐ llm
- swift ์์ ๊ฐ์ ธ์ค๊ธฐ
- ๋น๋๊ธฐ ํ์ด์ง swift
- swift network module
- swift filemanager excel
- rag llm pdf
- ios gitignore
- swift urlsession ๊ณตํตํ
- ๊ณต๋ถ ํ์ด๋จธ ์ดํ
- swift network refactoring
- filemanager excel read
- rag ๊ธฐ๋ฐ llm ์ฑ๋ด
- llm csv
- concurrency pagination
- ๋น๋๊ธฐ ๋ฆฌ์คํธ swift
- swift urlsession refactoring
- ์๋์ํํธ ๋ ์ด์ธ์ด
- swift ์์ ์ฝ๊ธฐ
- ๋ ๋์ธ์ด ์ดํ
- swift excel read
- swift filemanager get excel
- swift 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 | 29 | 30 | 31 |