반응형

1. 시험환경

    · AWS EC2 Ubuntu Linux

        - t2.large

        - AMI-ID: ami-09a7535106fbd42d5 (ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20240301)

 

2. 목적

    · Langchain 관련 라이브러리를 설치한다.

    · OpenAI의 API와 연동하여 Langchain 기초 사용법을 학습한다.

 

3. 적용

    ① 테스트를 위한 라이브러리를 설치한다.

        - $ sudo apt install python3-pip

        - $ pip install langchain
        - $ pip install langchain-openai
        - $ pip install bs4
        - $ pip install sentence-transformers
        - $ pip install faiss-cpu

 

     OpenAI의 API 키를 이용하여 질문하고 응답 결과를 확인한다.

        - 코드)

 

        - 결과)

 

     PromptTemplate 클래스를 사용하여 동적으로 프롬프트(질문)를 생성한다.

        - 코드)

 

        - 결과)

 

     동적으로 생성한 프롬프트(질문)를 OpenAI에게 질문하고 이에 대한 응답을 확인한다.

        - 코드)

 

        - 결과)

 

     ConversationChain을 사용하여 두 입력에 대한 대화 예측을 수행하고 그 결과를 출력한다.

        - 코드)

 

        - 결과)

 

     로드한 특정 문서를 1000자 단위로 나누고, 분할된 chunk의 갯수 및 첫 번째 chunk를 출력한다.

        - 코드)

 

        - 결과)

 

    과정에서 수행한 결과(chunk)를 요약하여 출력하는 코드가 추가되었다.

        - 코드)

 

        - 결과)

 

     HuggingFace 임베딩을 기반으로 데이터 벡터화 및 FAISS 인덱싱 시스템을 통해 이를 저장한다.

        - 코드)

 

        - 결과)

 

     벡터 스토어를 활용하여 최근 이슈에 대한 쿼리를 실행하고, 결과를 확인한다.
        - 코드)

 

        - 결과)  Chat GTP3는 2024년 4월 기준(러시아 대통령 선거) 정보를 갖고 있지 않다.

 

반응형
반응형

1. Eleven Labs

    ① 보이스 클론

    ② 다양한 목소리 음성 생성
    ③ URL : https://elevenlabs.io/

 

Text to Speech & AI Voice Generator

Create premium AI voices for free in any style and language with the most powerful online AI text to speech (TTS) software ever. Generate text-to-speech voiceovers in minutes with our character AI voice generator.

elevenlabs.io

 

반응형
반응형

1. HeyGen

    ①  아바타 기반 영상 생성 서비스
    ②  맞춤형 아바타 생성
    ③  교육, 프리젠테이션, 마케팅 등 다양한 용도로 활용될 수 있도록 여러 시나리오 지원
    ④  URL : https://www.heygen.com/

 

HeyGen - AI Video Generator

HeyGen is an innovative video platform that harnesses the power of generative AI to streamline your video creation process. Unleash your creativity with HeyGen - the future of video production.

www.heygen.com

 

 

2. synthesia

    ①  아바타 기반 영상 생성 서비스
    ②  AI 음성 합성 기술을 통해 50개 이상의 언어로 자연스러운 음성 생성
    ③  사용자 친화적으로 설계된 비디오 편집 기
    ④  URL : https://www.synthesia.io/

 

Synthesia - Create studio-quality AI videos from text

Create studio-quality videos with AI avatars and voiceovers in 130+ languages. It is as easy as making a slide deck.

www.synthesia.io

 

3. Hour One

    ①  아바타 기반 영상 생성 서비스
    ②  실제 인물과 흡사하게 보이는 아바타 제작
    ③  간단한 입력만으로 비디오 생성 및 즉시 배포
    ④  URL : https://hourone.ai/

 

Gen AI Video: Creating Content Workflows for Enterprise Growth - Hour One

Gen AI videos and content workflows tailored for your enterprise growth

hourone.ai

 

4. runway

    ①  텍스트 기반 영상 생성 서비스
    ②  객체 제거, 스타일 전환, 영상 색상 조정 등의 작업을 AI 가 자동으로 수행
    ③  클라우드 기반 작업 환경을 제공하여 사용자들이 어디에서나 접속하여 협업 가능
    ④  URL : https://runwayml.com/

 

Runway - Advancing creativity with artificial intelligence.

Runway is an applied AI research company shaping the next era of art, entertainment and human creativity.

runwayml.com

 

5. Sora

    ①  텍스트 기반 영상 생성 서비스
    ②  실시간 투표, 채팅, 반응 등을 아바타가 실시간으로 반영하여 보다 동적인 커뮤니케이션 제공
    ③  YouTube, Fackebook 등 다양한 스트리밍 플랫폼과 호
    ④ URL : https://openai.com/index/sora/

 

6. Pika

    ①  텍스트 기반 영상 생성 서비스
       URL : https://pika.art/home

 

Pika

The idea-to-video platform that sets your creativity in motion.

pika.art

 

7. invideo AI

    ①  텍스트 기반 영상 생성 서비스
    URL: https://invideo.io/

 

Invideo AI - Turn ideas into videos - AI video creator

Make videos easily by giving a prompt to invideo AI. Ideal for content creators, YouTubers, and marketers, invideo AI offers a seamless way to turn your ideas into publish-ready videos with AI.

invideo.io

 

반응형
반응형

1. 시험환경

    · 윈도우

    · C++

    · boost

 

2. 목적

    · C++ Boost 라이브러리를 이용하여 json 파일을 읽어서 파싱(parsing)하는 예제 코드를 작성한다.

 

3. 적용

    ① json 샘플 데이터

        - 파일명 : Config.json

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
32
33
{
  "encoding":"UTF-8",  
  "config_type":"dev",
 
  "port":8899,
 
  "log":
  { 
    "max_size":1024,
    "write_file":true,
    "print_screen":true    
  },
 
  "database":
  [
    { 
      "desc":"no.1",
      "address":"127.0.0.1",
      "port":4443,
      "instance":"test_instance1",
      "id":"sa",
      "password":"asdf1234$"
    },
    { 
      "desc":"no.2",
      "address":"127.0.0.1",
      "port":5443,
      "instance":"test_instance2",
      "id":"sa",
      "password":"asdf1234$"
    }
  ]
}
cs

 

 

    ② json 형식의 데이터를 파싱하는 코드이다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
#include <boost/foreach.hpp>
 
 
int main()
{
    try
    {
        using boost::property_tree::ptree;
        using std::string;
 
        ptree props;
        boost::property_tree::read_json("Config.json", props);
 
 
        string encoding = props.get<string>("encoding");
        std::cout << "Encoding=" << encoding << std::endl;
 
        string config_type = props.get<string>("config_type");
        std::cout << "config_type=" << config_type << std::endl;
 
 
        unsigned short port = props.get<unsigned short>("port");
        std::cout << "port=" << port << std::endl;
 
 
        std::cout << "[Log]" << std::endl;
        ptree &log_child = props.get_child("log");
        int size = log_child.get<int>("max_size"); 
        std::cout << "size=" << size << std::endl;
 
 
        bool write_file = log_child.get<bool>("write_file"); 
        std::cout << "write_file=" << std::boolalpha << write_file << std::endl;
 
        std::cout.setf(std::ios::boolalpha);
        bool print_screen = log_child.get<bool>("print_screen"); 
        std::cout << "print_screen=" << print_screen << std::endl;
 
 
 
        std::cout << "[Database]" << std::endl;
        ptree &db_child = props.get_child("database");
 
        // array!
        int idx = 0;
        BOOST_FOREACH(ptree::value_type &vt, db_child)
        {
            string desc = vt.second.get<string>("desc");
            string address = vt.second.get<string>("address");
            unsigned short port = vt.second.get<unsigned short>("port");
            string instance = vt.second.get<string>("instance");
            string id = vt.second.get<string>("id");
            string password = vt.second.get<string>("password");
 
            std::cout << idx++ << " " << desc << " " << address << " " << port << " " << instance << " " << id << " " << password << std::endl;
        }
 
    }
    catch (std::exception& e)
    {
        std::cout << e.what(); 
    }
 
    return 0;
}
 
cs

 

반응형
반응형

1. 시험환경

    · React Native

    · expo cli

    · vsCode

    · Android Studio / AVD(Android Virtual Device)

 

2. 목적

    · expo cli를 이용하여 프로젝트를 생성하고 실행한다.

    · 핸드폰 단말기에 Expo Go 앱을 설치하여 배포 앱을 확인한다.

 

3. 적용

    ① [휴대폰] Android 및 iPhone 단말기에 "Expo Go" 앱을 설치한다.

        - 윈도우 개발환경에서는 iPhone 에뮬레티어를 실행할 수 없기 때문에 iPhone 단말기를 준비해야 한다.


    ② 안드로이드 에뮬레이터를 사용하기 위해 Android Studio 및 AVD를 설치한다.

        - 참고 : https://languagestory.tistory.com/174

 

Android Studio 설치

1. 시험환경 ˙ 윈도우 ˙ 안드로이드 스튜디오 2. 목적 ˙ 윈도우 운영체제에서 안드로이드 스튜디오를 설치한다. 3. 적용 ① 안드로이드 개발자 사이트에 접속해서 "Andriod 스튜디오" 메뉴를 클릭

languagestory.tistory.com

 

 

        - 참고 : https://languagestory.tistory.com/175

 

AVD(Android Virtual Device) 사용

1. 시험환경 ˙ Android Studio ˙ AVD(Android Virtual Device, 안드로이드 가상 디바이스) 2. 목적 ˙ Android Studio에서 제공하는 AVD를 최초 실행 및 동작하는 방법을 학습한다. 3. 적용 ① Android Studio → More Actions

languagestory.tistory.com

 

    node.js를 설치한다.

        - 참고 : https://languagestory.tistory.com/24

 

node.js 최신버전 설치 (windows)

1. 시험환경 ˙ Node.js 20.11.1 LTS ˙ 윈도우 2. 목적 ˙ node.js를 윈도우 환경에서 설치한다. ˙ node.js를 설치 시, 자동설치 되는 npm을 확인한다. 3. 적용 ① node JS 공식 웹사이트에서 설치 파일을 다운 받

languagestory.tistory.com


    expo 최신 패키지를 설치한다.

        - npm install expo@latest

 

    expo cli를 이용하여 프로젝트를 생성한다.

        - npx create-expo-app [프로젝트명]

 

    생성된 프로젝트 폴더로 이동하여 프로젝트를 실행한다.

        - cd [프로젝트명]

        - npx expo start

 

    ⑦ 안드로이드) AVD 실행 후 ⑥에서 실행한 콘솔은 유지하고 별도의 콘솔에서 아래 명령어를 실행한다.

        - npm run android

 

    ⑧ 아이폰) 실행시 나타나는 QR 코드를 핸드폰 "Expo Go" 앱을 열어서 코드스캔한다.

        - QR 스캔 핸드폰은 개발 PC와 동일 네트워크에 있어야 함에 주의한다.

 

4. 결과

    · 핸드폰에서 실행된 앱을 확인한다.

 

반응형
반응형

1. 시험환경

    ˙ Gemini (Google AI Studio) 서비스

 

2. 목적

    ˙ AI 앱 개발을 위해 Gemini를 연동할 경우 사전 준비사항으로 API 키 발급 받는 절차를 알아보자.

 

3. 적용

    ① Gemini 사이트에 접속하여 계정생성 및 로그인한다.

        - URL : https://ai.google.dev/

 

Build with the Gemini API  |  Google AI for Developers

Integrate the Gemini API, quickly develop prompts, and transform ideas into code to build AI apps.

ai.google.dev

 

    ② 로그인 후 나타나는 첫 화면에서 "Get API key in Google AI Studio" 메뉴를 클릭한다.

 

    ③ 최초 로그인시 나타나는 팝업창에서 필수조항 체크 후 "Continue" 버튼을 클릭한다.

 

    ④ "Get API Key" 메뉴에서 "Create API Key" 버튼을 클릭하 서비스별 API 키를 발급한다.


 

    ⑤ Gemini 1.0 Pro의 API는 현재기준(2024년 3월) 과금없이 사용가능하다.

 

4. 결과

    ˙ API 연동 예제 프로그램(python)을 작성하여 테스트하면 응답 결과를 확인할 수 있다.

        - 샘프코드 작성

1
2
3
4
5
6
7
8
9
10
11
import google.generativeai as genai
 
GOOGLE_API_KEY="발급받은 Gemini API Key 입력"
 
genai.configure(api_key=GOOGLE_API_KEY)
 
model = genai.GenerativeModel('gemini-pro')
 
response = model.generate_content("태양계 행성의 종류에 대하여 알려줘")
 
print(response.text)
cs

 

        - 결과확인

 

반응형
반응형

1. 시험환경

    ˙ Chat GPT (Open AI) 서비스

 

2. 목적

    ˙ AI 앱 개발을 위해 Chat GPT를 연동할 경우 사전 준비사항으로 API 키 발급 받는 절차를 알아보자.

 

3. 적용

    ① Open AI 사이트에 접속하여 계정생성 및 로그인한다.

        - URL : https://openai.com/

 

OpenAI

Introducing Sora: Creating video from text

openai.com

 

    ② 로그인 후 나타나는 첫 화면에서 "API" 메뉴를 클릭한다.

 

    ③ 좌측 아이콘에서 [API keys] 메뉴를 클릭한다.

 

    ④ "Create new secret key" 버튼을 클릭하여 서비스별 API 키를 발급한다.

 


 

    ⑤ "Settings" → "Billing" → "Add payment details" 버튼을 클릭하여 결재카드를 등록한다.

        - 발급받은 Key를 사용하기 위해 결재방법 등록 및 과금 결재(선불)해야 한다.

 

    ⑥ 선불 결재 결과를 확인한다 (10% tax는 별도 부과된다)

 

4. 결과

    ˙ API 연동 예제 프로그램(python)을 작성하여 테스트하면 응답 결과를 확인할 수 있다.

        - 라이브러리 설치 : pip install langchain langchain-openai tiktoken

        - 샘프코드 작성

1
2
3
4
5
6
7
8
9
10
import os
os.environ['OPENAI_API_KEY'= '발급받은 OpenAI API Key'
 
from langchain_openai import ChatOpenAI
 
# model
llm = ChatOpenAI(model="gpt-3.5-turbo-0125")
 
# chain
llm.invoke("태양계 행성의 종류는?")
cs

 

        - 결과확인

 

반응형
반응형

1. 시험환경

    ˙ Amazon Linux

    ˙ terraform(테라폼)

 

2. 목적

    ˙ Amazon 리눅스 환경에서 terraform을 설치한다.

 

3. 적용

    ① 테라폼(terraform) 공식 사이트에서 운영체제별 설치 가이드를 확인할 수 있다.

        - URL : https://developer.hashicorp.com/terraform/install

 

Install | Terraform | HashiCorp Developer

Explore Terraform product documentation, tutorials, and examples.

developer.hashicorp.com

 

    ② 운영체제별 설치 가이드를 확인한다.

 

    ③ 설치 명령어 실행한다.

        - 여기에서 Amazon Linux 환경에 설치한다.

        $ sudo  yum  install  -y  yum-utils  shadow-utils

        $ sudo  yum-config-manager  --add-repo  https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

        $ sudo  yum  -y  install  terraform

 

4. 결과

    ˙ 설치가 완료되면 설치경로 및 버전을 확인한다.

        - $ which terraform

        - $ terraform version

반응형

+ Recent posts