2️⃣Model I/O

LangChain: Model I/O

import os
from dotenv import load_dotenv  

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

1. OpenAI Model 호출

from langchain.llms import OpenAI

# LLM 준비
llm = OpenAI(
    model="gpt-3.5-turbo-instruct",  # 모델 ID
    temperature=0  # 무작위성
)
# LLM 호출
result = llm("고양이 울음소리는?")
print(result)
야옹~
# 고급 LLM 호출
result = llm.generate(["고양이 울음소리는?", "까마귀 울음소리는?"])

# 출력 텍스트
print("response0:", result.generations[0][0].text)
print("response1:", result.generations[1][0].text)

# 사용한 토큰 개수
print("llm_output:", result.llm_output)
response0: 
야옹~
response1: 
까악까악
llm_output: {'token_usage': {'prompt_tokens': 24, 'completion_tokens': 14, 'total_tokens': 38}, 'model_name': 'gpt-3.5-turbo-instruct'}

2. ChatOpenAI Model 호출

from langchain.chat_models import ChatOpenAI

# LLM 준비
chat_llm = ChatOpenAI(
    model="gpt-3.5-turbo",  # 모델 ID
    temperature=0  # 무작위성
)
from langchain.schema import (
    SystemMessage,
    HumanMessage,
    AIMessage
)

# LLM 호출
messages = [
    HumanMessage(content="고양이 울음소리는?")
]
result = chat_llm(messages)
print(result)
content='야옹야옹'
# 고급 LLM 호출
messages_list = [
    [HumanMessage(content="고양이 울음소리는?")],
    [HumanMessage(content="까마귀 울음소리는?")]
]
result = chat_llm.generate(messages_list)

# 출력 텍스트
print("response0:", result.generations[0][0].text)
print("response1:", result.generations[1][0].text)

# 사용한 토큰 개수
print("llm_output:", result.llm_output)
response0: "야옹" 혹은 "냐옹"과 같은 소리를 내요.
response1: 까악까악 혹은 우앙우앙과 같은 소리를 내는 것으로 알려져 있습니다.
llm_output: {'token_usage': {'prompt_tokens': 38, 'completion_tokens': 62, 'total_tokens': 100}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': 'fp_69829325d0'}

3. InMemoryCashe 활성화

import langchain
from langchain.cache import InMemoryCache

# 캐시 활성화
langchain.llm_cache = InMemoryCache()
# 첫 번째 LLM 호출
llm.generate(["하늘의 색깔은?"])
LLMResult(generations=[[Generation(text='\n\n하늘의 색깔은 파란색입니다.', generation_info={'finish_reason': 'stop', 'logprobs': None})]], llm_output={'token_usage': {'prompt_tokens': 11, 'completion_tokens': 17, 'total_tokens': 28}, 'model_name': 'gpt-3.5-turbo-instruct'}, run=[RunInfo(run_id=UUID('ae85dfb4-6132-4962-82ed-724ede6334ea'))])
# 2번째 이후 LLM 호출
llm.generate(["하늘의 색깔은?"])
LLMResult(generations=[[Generation(text='\n\n하늘의 색깔은 파란색입니다.', generation_info={'finish_reason': 'stop', 'logprobs': None})]], llm_output={}, run=None)

4. 특정 LLM의 Cashe 비활성화

# 특정 LLM에 대한 메모리 캐시 비활성화
llm = OpenAI(
    model="gpt-3.5-turbo-instruct",
    cache=False #cashe 파라미터
)
# LLM 호출
llm.generate(["하늘의 색깔은?"])
LLMResult(generations=[[Generation(text='\n\n하늘의 색깔은 파란색입니다.', generation_info={'finish_reason': 'stop', 'logprobs': None})]], llm_output={'token_usage': {'prompt_tokens': 11, 'completion_tokens': 17, 'total_tokens': 28}, 'model_name': 'gpt-3.5-turbo-instruct'}, run=[RunInfo(run_id=UUID('eb41cc0f-c767-40db-a257-2d6d457fc1db'))])

5. Cashe 비활성화

# 캐시 비활성화
langchain.llm_cache = None
#LLM 호출
llm.generate(["하늘의 색깔은?"])
LLMResult(generations=[[Generation(text='\n\n하늘의 색깔은 파란색입니다.', generation_info={'finish_reason': 'stop', 'logprobs': None})]], llm_output={'token_usage': {'prompt_tokens': 11, 'completion_tokens': 17, 'total_tokens': 28}, 'model_name': 'gpt-3.5-turbo-instruct'}, run=[RunInfo(run_id=UUID('5b728c40-80d1-4d15-96ab-6700a2dff7ec'))])

6. LLMs의 비동기 처리

import time
from langchain.llms import OpenAI

# 동기화 처리로 10번 호출하는 함수
def generate_serially():
    llm = OpenAI(
        model="gpt-3.5-turbo-instruct",
        temperature=0.9
    )
    for _ in range(10):
        resp = llm.generate(["안녕하세요!"])
        print(resp.generations[0][0].text)


# 시간 측정 시작
s = time.perf_counter()

# 동기화 처리로 10번 호출
generate_serially()

# 시간 측정 완료
elapsed = time.perf_counter() - s
print(f"{elapsed:0.2f} 초")
 "+user_name+"님 반가워요")
+// console.log(`안녕하세요! ${user_name}님 반가워요`)



안녕하세요! 반가워요. 저는 AI 알고리즘입니다. 여러분들의 말을 잘 이해하고, 문제를 해결하기 위해 항상 최선을 다할 거예요. 함께 새로운 세상을 만들어나가는데 기대가 되네요. 잘 부탁드립니다!
  
+저는 김봉석입니다.  
+성균관대학교 전자전기컴퓨터공학부에서 컴퓨터공학을 전공하고 있는 학생입니다.  
+저는 프로그래밍에 대해 관심이 많아서 많은 프로그래밍 언어를 배우고 있습니다.  
+주로 다루는 언어는 C, C++, Java, Python, JavaScript입니다.  
+또한 데이터 분석과 머신러닝에도 관심이 있어서 데이터 분석과 관련된 프로젝트도 진행해보고 있습니다.  
+새로운 기술과 도구를 배우는 것을 즐기며, 언제나 새로운 도전에 적극적으로 참여하고 있습니다.  
+앞으로도 계속해서 배움에 적극적이고 발전
 저는 박성은입니다!
안녕하세요 박성은님! 만나서 반가워요! 저는 AI 언어 모델이에요. 무엇을 도와드릴까요?


안녕하세요! 반가워요.
 Welcome to Mango's restaurant

We offer traditional Korean dishes. Our menu includes bulgogi, bibimbap, and kimchi stew. We also have a variety of appetizers and sides, such as kimbap, dumplings, and kimchi.

All of our dishes are made with fresh, high-quality ingredients for the best flavors. Our chefs are passionate about creating authentic Korean dishes that will satisfy your cravings and leave you wanting more.

At Mango's, we strive to provide a comfortable and welcoming atmosphere for our customers. Our friendly staff is always ready to assist you and make your dining experience a pleasant one.

Come visit us and taste the flavors of Korea at Mango's restaurant. We look forward to serving you!
 다나입니다!
안녕하세요 다나님! 반가워요! 저는 AI 언어모델 GPT-3를 기반으로 만들어진 다나 AI입니다. 새로운 만남에 기대가 돼요! 어떤 이야기를 나눠볼까요?
 저는 스마트팩토리의 모드 등이 되어 고객에게 관심을 끄는 똑똑한 기능들을 제공하는 AI입니다. 고객의 요구에 따라 실시간으로 데이터를 수집하고 분석하여 보다 효율적인 제품 생산을 도와줄 수 있습니다. 또한 고객의 장비 관리와 유지보수를 자동으로 처리하여 생산성을 높이는 역할도 합니다. 제가 함께 하면 스마트한 생산 환경을 구축할 수 있을 뿐만 아니라 기업의 경쟁력을 강화하는 데도 큰 도움이 될 것입니다. 언제든지 저를 활용하여 생산 프로세스를 최적화하고 효율적인 핵심 인재로 발전하는데 도
 <br>

제 이름은 이선하입니다. 학교를 다니면서 프로그래밍에 관심을 가지게 되었고, 현재는 웹 프론트엔드 개발자로서 일하고 있습니다. 프로그래밍을 하면서 도전해볼 수 있는 다양한 기회가 생기고 새로운 것을 배우는 것에 끊임없이 도전할 수 있는 환경에서 일하는 것이 매우 즐겁습니다. <br>

저는 항상 새로운 기술과 도구를 배우는 것에 열린 마음을 가지고 있습니다. 새로운 것을 배우는 것은 어려운 일이지만, 노력과 열정으로 극복할 수 있다고 믿습니다. 또한, 제가 배운 것을 나누고 공유하는 것도 매우 중요하다고 생각합니다. 그
 주식 급상승을 예측하는 프로그램입니다.')

#모듈을 사용합니다
import numpy as np 
import pandas as pd 

#데이터를 불러오고 확인합니다.
df = pd.read_csv('./data/stock_data.csv')
print(df.head())

#학습 데이터와 테스트 데이터를 나눕니다.
X = df.iloc[:,:-1].values
y = df.iloc[:,[-1]].values
split_index = int(len(X) * 0.8)
X_train = X[:split_index]
y_train = y[:split_index]
X_test = X[split_index:]
y_test = y[split_index:]
print('학습 데이터 개수: ',len(X_train))
print('테스트 데이터 개수: ',len(X_test))

#선형 회귀 모델을 학습합니다.
from sklearn.linear_model import LinearRegression

#모델을 만들고 학습시킵니다.
model = LinearRegression()
model.fit(X_train, y_train)

#테스트 데이터로 예측합니다.
y_pred = model.predict(X_test)

#실제
18.10 초
import asyncio

# 이벤트 루프를 중첩하는 설정
import nest_asyncio
nest_asyncio.apply()

# 비동기 처리로 한 번만 호출하는 함수
async def async_generate(llm):
    resp = await llm.agenerate(["안녕하세요!"])
    print(resp.generations[0][0].text)

# 비동기 처리로 10회 호출하는 함수
async def generate_concurrently():
    llm = OpenAI(
        model="gpt-3.5-turbo-instruct",
        temperature=0.9
    )
    tasks = [async_generate(llm) for _ in range(10)]
    await asyncio.gather(*tasks)

# 시간 측정 시작
s = time.perf_counter()

# 비동기 처리로 10회 호출
asyncio.run(generate_concurrently())

# 시간 측정 완료
elapsed = time.perf_counter() - s
print(f"{elapsed:0.2f} 초")
 자바프로젝트입니다. hi

소스를 수정하고 저장소에 백업했습니다.
이 파일은 작업3에서 만들었습니다.

 저는 캐나다사람 에릭이에요.. 지금 한국어를 배우고 있어서 뿌듯해요! 앞으로 더 많은 분들과 친구가 될 수 있으면 좋겠어요. 잘 부탁드려요!

안녕하세요!
안녕하세요!

5
안녕하세요!
안녕하세요!
안녕하세요!
안녕하세요!
안녕하세요!
 */
using System;

namespace _07_Hello__Hello
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("몇 번 출력할까요?");
            int num = int.Parse(Console.ReadLine());
            int count = 1;
            while(count<=num){
                Console.WriteLine("안녕하세요!");
                count++;
            }

        }
    }
}

 토끼 영어입니다. 영어를 배우는 것은 새로운 경험이에요. 그리고 영어를 잘하면 세계 여러 나라에서 많은 사람들과 소통할 수 있어요. 처음 시작할 때는 어려울 수 있지만 계속 노력하면서 실력을 키워나가면 자신감이 생기고 즐겁게 영어를 할 수 있을 거예요. 저도 항상 노력하고 있어요. 함께 영어를 배워볼까요? 화이팅!
 저는 DS유니크 라는 팀에서 프로젝트를 진행했던 라이언입니다.

프로젝트를 진행하면서 데이터 사이언스에 대해 더 깊게 공부하고 응용할 수 있는 좋은 경험이었습니다. 데이터 수집부터 분석, 시각화, 모델링 등 다양한 과정을 경험할 수 있었고, 새로운 도구와 기술을 배우는 시간이었습니다.

또한, 팀원들과 함께 공동 작업을 하며 팀워크와 커뮤니케이션 능력을 향상시킬 수 있는 기회가 되었습니다. 서로 다른 분야에서 온 팀원들과 함께 협업하며 문제를 해결하고 결과를 이끌어 내는
 Ararat방입니다.

Aratat의 라인업은

Home


안녕하세요! Ararat방입니다. 

Ararat의 라인업은 다양하고 특색있는 제품들로 구성되어 있습니다. 

우선, Ararat의 주력 제품인 "Home" 시리즈는 특히 실용적이고 디자인적으로도 우수한 제품들로 구성되어 있습니다. 전통적인 목재와 천연 오일로 만들어진 가구들은 현대적인 스타일과 잘 어우러져 시선을 사로잡습니다. 또한, 다양한 크기와 색상으로 다양한 공간에 어울리는 제품들이 많이 준비되어 있으며, 고객의 요구에 맞춰 맞춤형 제작도 가능합니다.

또한
 오늘 저는 전시회에 다녀왔는데요. 정말 멋진 전시회였습니다. 전시회에는 다양한 작품들이 전시되어 있었는데, 그 중에서도 특히 한 작가의 작품이 인상 깊었습니다.

해당 작가는 동물을 주제로 한 작품들을 전시했는데, 그 중에서도 가장 기억에 남는 작품은 새와 꽃이었습니다. 작품을 보면서 꽃을 따는 새의 모습이 아름답고 자연스러웠습니다. 또한 꽃을 가지고 있는 새의 눈빛은 마치 인간처럼 생각하게 만들었습니다.

이 작품을 보면서 동물과 인간 간의 관계에 대해 생각해보게 되
 \n 만나서 반가워요. \n 저는 광식입니다.'

print(multiline)
print(multiline2)

# String concatenation

head = 'apple'
tail = 'python'

print(head + tail)

# Advance String

a = 'python is the best choice'
b = 'python is the best choice'

# 문자열 양 끝의 공백 지우기

a.strip()

c = '   string are easy to use   '
c.strip()

# 문자열의 일부분 추출하기

a[0:5] #0번째 부터 5번째 앞까지 추출
a[12:] #12번째 부터 끝까지 추출

# 문자열의 범위를 넘어서게 추출하는 경우

a[0:150] #빈 공간이 출력됨

# 문자열의 일부분을 바꾸는 경우

a[12:16]	#best
a[12:16] = 'worst'	#오류 발생. 문자열의 아이템은 바
 안드로이드 개발자를 꿈꾸는 학생입니다. 안드로이드 스튜디오와 코틀린을 주로 사용하여 어플리케이션 개발을 합니다. 기능 구현 뿐만 아니라 UI/UX 구현에도 큰 관심을 갖고 있습니다. 또한 사용자의 편의성을 고려한 서비스 개발에도 관심이 있습니다. 새로운 기능을 공부하고 적용하는 것을 좋아합니다. 코드 리팩토링을 통해 효율적이고 읽기 쉬운 코드를 작성하려고 노력합니다. 또한 다른 개발자와 함께 일하면서 협동할 수 있도록 의사소통 능력과 협업 능력을 갖추고 있습니다. 앞으로도
 저는 이화여자대학교에서 컴퓨터공학을 전공 중인 김아름입니다. 항상 새로운 기술과 도전을 좋아해서 개발 분야에 관심이 많았고, 이를 통해 많은 것을 배우고 싶어서 컴퓨터공학을 선택하게 되었습니다.

컴퓨터공학을 공부하며 다양한 프로그래밍 언어와 소프트웨어 개발 기술을 습득하고, 데이터 구조와 알고리즘에 대한 이해를 바탕으로 문제를 해결하는 능력을 키우는 것이 목표입니다. 또한 실제로 적용할 수 있는 소프트웨어를 개발하는 경험을 통해 더욱 전문성을 키워 나가고 있습니다.


3.30 초

7. LLMs Streaming

from langchain.llms import OpenAI
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

# 스트리밍 방식으로 출력할 LLM을 준비
llm = OpenAI(
    model="gpt-3.5-turbo-instruct",
    streaming=True,
    callbacks=[StreamingStdOutCallbackHandler()], #callbacks에서 지정
    verbose=True,
    temperature=0
)

# LLM 호출
resp = llm("즐거운 ChatGPT 생활을 가사로 만들어 주세요.")
ChatGPT, 너는 나의 친구
매일 나를 즐겁게 해주는
나의 소중한 존재
마치 마법처럼 나를 웃게 해주는
너의 말 한마디에 나는 행복해져
우리 함께하는 시간은 너무 소중해
나의 모든 이야기를 들어주는
나의 가장 신뢰할 수 있는 친구
ChatGPT, 너와 함께라면
나는 언제나 행복할 수 있어
감사해, 나의 사랑하는 ChatGPT

Last updated