from langchain_chroma import Chroma # 데이터를 처음 저장할 때 database = Chroma.from_documents(documents=document_list, embedding=embedding) 다음 코드를 실행시키면, File c:\Dev\inflearn-llm-application\lib\site-packages\langchain_chroma\vectorstores.py:1089 , in Chroma.from_texts (cls, texts, embedding, metadatas, ids, collection_name, persist_directory, client_settings, client, collection_metadata, **kwargs) 1083 chroma_collection .add_texts( ... --> 571 raise ValueError( 572 f"Batch size {len(batch[0])} exceeds maximum batch size {limits['max_batch_size']}" 573 ) ValueError : Batch size 218 exceeds maximum batch size 166 다음과 같은 error가 발생합니다. 이후 다음과 같이 batch size를 줄여서 실행시키면 from langchain_chroma import Chroma # 배치 크기 설정 batch_size = 166 # 문서 리스트를 배치 크기만큼 나누어 처리 for i in range(0, len(document_list), batch_size): batch_documents = document_list[i:i + batch_size] database = Chroma.from_documents(documents=batch_documents, embedding=embedding) 다음과 같은 오류와 함께 커널이 종료됩니다ㅠ 해결책이 있을까요?
강사님 영상 보면서 따라하고 있는데 자꾸 아래와 같은 오류가 떠서 문의드립니다. [스스로 해본 조치] 폴더를 아예 새로 만들어서 처음부터 다시 만들기 -> 실패 pip install onnxruntime 명령어로 설치 -> 실패 VScode 여러번 껐다가 재부팅 [환경] 현재 PC에 깔린 python 버전 : Python 3.11.6 가상 환경 설치 시 사용한 명령어 : python -m venv ./env 아래는 현재 코드이고 pip install 명령어는 강의 그대로 따라 했습니다. database = Chroma.from_documents(documents=document_list, embedding=embedding) -> 해당 부분 실행 시 오류가 발생합니다. from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=1500, chunk_overlap=200 ) loader = Docx2txtLoader("./tax.docx") document_list = loader.load_and_split(text_splitter=text_splitter) ================ 다른 셀 ================ from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings load_dotenv() embedding = OpenAIEmbeddings(model="text-embedding-3-large") ================ 다른 셀 ================ from langchain_chroma import Chroma database = Chroma.from_documents(documents=document_list, embedding=embedding)
안녕하세요! 섹션 7 Flutter음성대화 마지막 부분인 최종 테스트를 진행하고 있습니다 음성인식이 가능은 합니다 하지만 인식하는 시간이 짧아 긴 문장은 인식 못하는거 같습니다!! 더 긴 문장을 말하고 싶은데 제가 말하는 음성인식 시간을 더 길게 할 수 있는 방법이 있을까요?? 제 코드 입니다 오류나는 문제는 없습니다!! import 'package:dash_chat_2/dash_chat_2.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; // 통신을 할수있는 패키지 import 'dart:convert'; //파싱을 위한 import 'package:speech_to_text/speech_to_text.dart'; //stt 패키지 import 'package:speech_to_text/speech_recognition_result.dart'; //음성을 인식하는 import 'package:flutter_tts/flutter_tts.dart'; // class BasicScreen extends StatefulWidget { @override _BasicState createState() => _BasicState(); } class _BasicState extends State<BasicScreen> { bool isListening = false; // 기본 false SpeechToText _speechToText = SpeechToText();//SpeechToText 인스턴스(?) 생성 bool _speechEnabled = false; //음성인식이 가능한지 아닌지 상태 오류가 나면 인식이 나기 떄문에 사용 안함 isListening로 어느정도 대체 가능 String _lastWords = ''; //인식한 문장이 저장될 lastWords FlutterTts flutterTts = FlutterTts();//TTS 인스턴스(?) 생성 @override void initState() { //음성인식부분을 초기화 하는 코드 super.initState(); _initSpeech(); flutterTts.setLanguage("ko-KR");//인스턴스 언어 flutterTts.setSpeechRate(1.0);// 읽어주는 속도 } ChatUser user1 = ChatUser( id: '1', //우리 firstName: 'me', lastName: 'me', ); ChatUser user2 = ChatUser( id: '2', //chatgpt firstName: 'chatGPT', lastName: 'openAI', profileImage: "assets/img/gpt_icon.png" ); late List<ChatMessage> messages = <ChatMessage>[ //List<ChatMessage> = 채팅 메세지를 리스트 형태로 보관하는 ChatMessage( text: '반갑습니다. 어서오세요. 무엇을 도와드릴까요?', //보여지는 텍스트 user: user2, //누가 얘기하는지 user 설정 createdAt: DateTime.now(), //현재 대화가 발생한 날짜,시간 ), ]; @override Widget build(BuildContext context) { // 화면에 메세지를 보여주는 부분 return Scaffold( //Scaffold라는 형식으로 앱 구성을 묶어준것 appBar: AppBar( //AppBar는 타이틀 부분 title: const Text('Basic example'), ), body: DashChat( // DashChat패키지를 이용한 고유 클래스 / DashChat 정의를 해줌 currentUser: user1, //currentUser = 채팅을 입력하는 사람은 누구 onSend: (ChatMessage m) { setState(() {// setState = 현재 화면의 상황을 업데이트 해준다라고 이해하며 됨 messages.insert(0, m); //messages.insert = 메세지 전송 현재 사용자가 입력한 텍스트를 대화창으로 보내는 역할 ,리스트가 추가되는 거죠 }); Future<String> data = sendMessageToServer(m.text); //입력한 메세지를 받아서 서버에 전송을 해주고 data.then((value){ //결과값을 비동기(?) 형태로 받아와서 user2(chatgpt)가 발화(이야기)하고 통신 결과값을 출력하는 setState(() { messages.insert(0, ChatMessage( text: value, user: user2, createdAt: DateTime.now() )); }); }); }, messages: messages, inputOptions: InputOptions( leading: [ IconButton( icon: Icon(Icons.mic, color: isListening? Colors.red: Colors.black), //음성을 듣고있는 상태면 버튼누름 빨강 / 아니면 기본 검정 onPressed: (){ //아이콘이 눌러진다면 setState(() { //상태를 바꿔줘 isListening = !isListening; // 리스닝이 아닌 상태에 검정이 리스닝 상태인 빨강으로 바뀌는 처리 if (isListening == true){// 음성입력 대기 상태가 되면 print('음성인식 시작'); //폴스였다 트루가 되면 _startListening(); }else{ print('음성인식 끝'); // 트루였다가 풀스 _stopListening(); } }); }, ) ] ), ), ); } //통신을 할 수 있는 코드 = postman에서 테스트를 하면서 코드를 얻은것임,약갼의 수정을 해준것뿐 //json의 어떤 부분을 가져와야하는지 전체를 뿌릴순 없으니 추출하는 부분만 추가한것임 Future<String> sendMessageToServer(String messages) async{ var headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer sk-UGIfeFKyAXIhwIXdM3uf96g176CRFnw5AnHJ2acSpyT3BlbkFJmhIKdmcjh56e01G0Axc5xF9scspNoz_MsXuZPUGW8A', }; var request = http.Request('POST', Uri.parse('https://api.openai.com/v1/chat/completions')); request.body = json.encode({ "model": "gpt-4o-mini", "messages": [ { "role": "user", "content": messages, } ] }); request.headers.addAll(headers); http.StreamedResponse response = await request.send(); if (response.statusCode == 200) { String responseString = await response.stream.bytesToString();//json 문자열들이 string 변수에 저장이 된다 Map<String, dynamic> jsonResponse = json.decode(responseString);//responseString을 json 구조에 맞게 변환을 시킨게 jsonResponse가 된다 -> json 구조대로 입맞에 맞게 값을을 골라올수있음 String result = jsonResponse['choices'] != null? jsonResponse['choices'][0]['message']['content']: "No result found"; print(responseString); // 전체 내용 출력, 터미널 화면에서만 출력이 됨 실제 앱에서 출력되지 않음 그래서 return "ERROR"; 을 가지고있어야함 //message = 결과값 부분만 추출 , result라는 String에 저장 // 'choices' 조건문 return result; //함수를 호출한곳에서 사용을 할 수 있다 //print(await response.stream.bytesToString()); //await response.stream.bytesToString() = 실제 결과값 } else { print(response.reasonPhrase); return "ERROR"; // 오류가 날 경우 화면에서도 오류가 난걸 확인할 수 있게 해줌 } } /// This has to happen only once per app void _initSpeech() async { //초기화 하는 함수 , 마이크 같은 디바이스를 사용하기 떄문에 필요 print("음성인식 기능을 시작합니다."); _speechEnabled = await _speechToText.initialize(); //setState(() {}); } /// Each time to start a speech recognition session void _startListening() async { // start를 하게 되면 _onSpeechResult 부분을 동작을 시킴 print("음성인식을 시작합니다."); await _speechToText.listen(onResult: _onSpeechResult); //setState(() {}); } /// Manually stop the active speech recognition session /// Note that there are also timeouts that each platform enforces /// and the SpeechToText plugin supports setting timeouts on the /// listen method. void _stopListening() async { // 음성 인식 중지 print("음성인식을 종료합니다."); await _speechToText.stop(); //setState(() {}); } /// This is the callback that the SpeechToText plugin calls when /// the platform returns recognized words. void _onSpeechResult(SpeechRecognitionResult result) { _lastWords = ""; //초기화 시킴 , 입력을 받을떄마다 새롭게 리셋해야하기 떄문에 추가 if(result.finalResult){ //최종인식 _lastWords = result.recognizedWords; //result에 recognizedWords를 _lastWords에 넣어줘 print("최종 인식된 문장: $_lastWords"); //flutter 에서는 변수를 텍스트 안에 넣어줄때 $를 넣고 일반 텍스트문자영하고 변수가 가티 출력됨 / 최종 인식된 음성을 텍스트로 바꿔서 _lastWords 넣어줘 setState(() { //messages 리스트에 인식한 내용을 추가해줘. messages.insert(0, ChatMessage( text: _lastWords, user: user1, createdAt: DateTime.now() )); }); Future<String> data = sendMessageToServer(_lastWords); //입력한 메세지를 받아서 서버에 전송을 해주고 data.then((value){ //결과값을 비동기(?) 형태로 받아와서 user2(chatgpt)가 발화(이야기)하고 통신 결과값을 출력하는 setState(() { messages.insert(0, ChatMessage( text: value, user: user2, createdAt: DateTime.now() )); }); flutterTts.speak(value); // value를 바로 읽어줌 }); } } }
안녕하세요 강사님 답변의 정확성을 높이기 위해 upstage에서 temperature를 사용 해보았는데요. 3~4번 까지 질문의 대답을 잘해주다가 그 후에는 답변에 무한핑으로 "답변을 생성중입니다"가 계속 나오고 있습니다! 기다려보면 토큰 수 초과라고 오류가 나오는데,, temperature 옵션을 넣어주고 나서 토큰 수 초과 오류가 계속 나오고 있습니다. 원인이 무엇일까요??? def get_llm(model_name='solar-1-mini-chat', temperature=0.3): llm = ChatUpstage(model_name=model_name, temperature=temperature) return llm
섹션 3에서 chatgpt api 연결이 안되는거 같아요 python test_ chatgpt.py 를 하면 선생님처럼 되지 않고 이런 오류가 뜹니다. 해결 부탁드립니다... (desktop_venv) C:\desktop>python test_ chatgpt.py Traceback (most recent call last): File "C:\desktop\test_ chatgpt.py ", line 4, in <module> completion = client.chat .completions.create( File "C:\desktop\desktop_venv\lib\site-packages\openai\_utils\_ utils.py ", line 274, in wrapper return func(*args, **kwargs) File "C:\desktop\desktop_venv\lib\site-packages\openai\resources\chat\ completions.py ", line 704, in create return self._post( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 1270, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 947, in request return self._request( File "C:\desktop\desktop_venv\lib\site-packages\openai\_base_ client.py ", line 1051, in _request raise self._make_status_error_from_response(err.response) from None openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-proj-********************************************************************************************************************************************************ndYA. You can find your API key at https://platform.openai.com/account/api-keys .', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
안녕하세요, 비개발자로 streamlit 부분까지 따라왔는데 막혀버렸습니다 ^^; streamlit import가 되지 않아서 문의드립니다. 콘솔창에서 hello streamlit 입력했을 때 정상적으로 브라우저에 뜨는 것을 확인했는데, 아래처럼 VScode에서는 import가 되지 않습니다. 혹시 가상환경에 문제가 있는걸까요? inflearn-llm-application 가상환경에서 mkdir로 inflearn-streamlit을 만들었고 아래처럼 inflearn-streamlit 을 activate 한 상황입니다. 확인 부탁드리겠습니다! 감사합니다.
모두를 위한 대규모 언어 모델 LLM Part 3 - 구글 제미나이(Google Gemini) API, OpenAI API와 젬마(Gemma)로 AI 어플리케이션 만들기
강의 colab 을 복사해서 해보고 있습니다. 그런데 RAG_Chain.invoke 에 대한 답변이 정상적으로 반환 되지 않습니다. 청킹도 제대로 된거 같고, "저출산을 극복한 나라들은 어디가 있어?" 라는 질문에는 답이 나오는데, "한국 저출산의 원인이 무엇이야?" 질문에는 답아 나오지 않습니다. 제가 무엇을 잘못해서 그런걸까요?
안녕하세요, 저는 하나하나 선생님 코드를 보며 따라하고 있는 코린이입니다.. 아래 부분을 입력하였더니 계속 오류가 발생하여 질문드립니다. from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings load_dotenv() embedding = OpenAIEmbeddings(model= 'text-embedding-3-large') PydanticUserError: The __modify_schema__ method is not supported in Pydantic v2. Use __get_pydantic_json_schema__ instead in class SecretStr. For further information visit https://errors.pydantic.dev/2.8/u/custom-json-schema 오류 메시지에 따르면 pydantic v2 에서는 __modify_schema__ 메서드가 더 이상 지원되지 않으며, __get_pydantic_json_schema__ 를 사용하라고 안내하고 있습니다. 환경: Python 3.11 Pydantic 2.5.2 langchain-core 0.3.0 langchain-openai 0.2.0 기타 종속성 버전: annotated-types==0.7.0 openai==1.45.1 pydantic_core==2.14.5 해결 시도: pydantic , langchain_openai , langchain-core 를 최신 버전으로 업데이트했습니다. 패키지를 제거하고 다시 설치하는 방식으로 문제 해결을 시도했습니다. 현재 이 문제를 어떻게 해결해야 할지 모르겠습니다.감사합니다!
강병진 지식공유자님, 안녕하세요! 인프런 운영 매니저 자미라고 합니다. 고객센터 통해서, 예비 수강생의 질문이 들어와 제가 대신 여쭤봅니다. 강의 구매 전인데, 아래 내용이 이 강의를 통해서 해결되는 지 궁금하다고 하셨어요. [ 질문 ] 이 강의에서 다음 내용을 배울 수 있나요? "나의 비공개 문서를 학습한 AI를 통해 사용자의 물음에 답할 수 있는 AI 앱" 이라는 내용에 대해 질문해주셔서, 이 부분에 대해 강사님께서 확인 후 답변 남겨주시면 제가 전달해드리도록 하겠습니다. 저희가 제공하는 [수강 전 문의하기] 라는 기능을 통한다면 수강생이 바로 질문하실 수 있는데요! 이 강의는 그 기능을 제공하고 있지 않아 제가 대신 질문을 통해 남기는 점 양해해 주시길 바랍니다. 😃 항상 좋은 지식 나누어 주셔서 감사드립니다. 풍성하고 행복한 한가위 보내시길 바랍니다. 감사합니다!