LM Studio로 만든 채팅앱 소스 코드 입니다.

 

아래 영상들을 참고해주세요.

 

 

 

https://youtu.be/ecBAvvuNxLc

 

- YouTube

 

www.youtube.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[설치 명령어]

pip install streamlit openai

 

[사용한 Prompt]

 

1번째 프롬프트

아래 코드를 Streamlit에서 Input을 받아서 채팅 앱 만들어줘 :
# Example: reuse your existing OpenAI setup
from openai import OpenAI

# Point to the local server
client = OpenAI(base_url="http://172.29.224.1:5555/v1", api_key="lm-studio")

completion = client.chat.completions.create(
  model="lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF",
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "Introduce yourself."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message)

 

 

2번째 프롬프트

Stream 방식으로 출력되도록 수정해줘.
채팅 입력창은 화면 하단에 위치해야 해

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[전체 소스코드]

1) Base App Code (app.py)

실행 명령어 : python3 app.py

# Example: reuse your existing OpenAI setup
from openai import OpenAI

# Point to the local server
client = OpenAI(base_url="http://172.29.224.1:5555/v1", api_key="lm-studio")

completion = client.chat.completions.create(
  model="lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF",
  messages=[
    {"role": "system", "content": "한글로 대답해줘."},
    {"role": "user", "content": "Introduce yourself."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message)

 

2) 채팅 앱 Code (st_app.py) 

실행 명령어 : streamlit run st_app.py

import streamlit as st
from openai import OpenAI

# OpenAI 클라이언트 설정
@st.cache_resource
def get_openai_client():
    return OpenAI(base_url="http://172.29.224.1:5555/v1", api_key="lm-studio")

client = get_openai_client()

st.title("LM Studio 채팅 앱")

# 세션 상태 초기화
if "messages" not in st.session_state:
    st.session_state.messages = [
        {"role": "system", "content": "한글로 대답해줘."}
    ]

# 사용자 입력
user_input = st.text_input("메시지를 입력하세요:", key="user_input")

if st.button("전송"):
    # 사용자 메시지 추가
    st.session_state.messages.append({"role": "user", "content": user_input})

    # API 호출
    response = client.chat.completions.create(
        model="lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF",
        messages=st.session_state.messages,
        temperature=0.7,
    )

    # 응답 메시지 추가
    assistant_message = response.choices[0].message.content
    st.session_state.messages.append({"role": "assistant", "content": assistant_message})

# 대화 내용 표시
for message in st.session_state.messages:
    if message["role"] != "system":
        with st.chat_message(message["role"]):
            st.write(message["content"])

 

 

3) 채팅 앱 Code - Streaming 방식 (st_app2.py) 

 

실행 명령어 : streamlit run st_app2.py

import streamlit as st
from openai import OpenAI

# OpenAI 클라이언트 설정
@st.cache_resource
def get_openai_client():
    return OpenAI(base_url="http://172.29.224.1:5555/v1", api_key="lm-studio")

client = get_openai_client()

st.title("LM Studio 채팅 앱")

# 세션 상태 초기화
if "messages" not in st.session_state:
    st.session_state.messages = [
        {"role": "system", "content": "한글로 대답해줘."}
    ]

# 채팅 메시지를 표시할 컨테이너
chat_container = st.container()

# 입력 필드를 화면 하단에 고정
input_container = st.container()

# 대화 내용 표시
with chat_container:
    for message in st.session_state.messages:
        if message["role"] != "system":
            with st.chat_message(message["role"]):
                st.write(message["content"])

# 사용자 입력 (화면 하단에 위치)
with input_container:
    user_input = st.text_input("메시지를 입력하세요:", key="user_input")
    send_button = st.button("전송")

if send_button and user_input:
    # 사용자 메시지 추가
    st.session_state.messages.append({"role": "user", "content": user_input})
    
    with chat_container:
        with st.chat_message("user"):
            st.write(user_input)
        
        with st.chat_message("assistant"):
            message_placeholder = st.empty()
            full_response = ""
            
            # 스트리밍 응답
            for response in client.chat.completions.create(
                model="lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF",
                messages=st.session_state.messages,
                temperature=0.7,
                stream=True
            ):
                full_response += (response.choices[0].delta.content or "")
                message_placeholder.markdown(full_response + "▌")
            
            message_placeholder.markdown(full_response)
    
    # 최종 응답 메시지 추가
    st.session_state.messages.append({"role": "assistant", "content": full_response})
    
    # 입력 필드 초기화 (st.session_state 사용하지 않음)
    st.rerun()

# 스크롤을 항상 최하단으로 이동
st.markdown('<script>window.scrollTo(0, document.body.scrollHeight);</script>', unsafe_allow_html=True)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

킹루트 6.0.1은 현재 존재하지 않습니다.
떠다니는 대부분의 링크들을 열면 안되는 경우가 많습니다.



가장 최신버전이라고 볼 수 있는 것은 5.3.0 버전으로 이번 포스팅을 통해 공유드리려 합니다.

 

 

 

먼저 이 포스트에서 다운받으신 APK 파일을 스마트폰 DCIM 폴더에 넣으세요.

"파일매니저" 또는 "파일관리자"에서 DCIM 폴더 안에 있는 Kingroot APK 파일을 실행시키면 팝업이 뜹니다.

"잠금화면 및 보안" => "출처를 알 수 없는 앱 활성화"를 체크하시고 "이번만 허용"으로 앱 설치를 진행합니다.

 

혹시라도 여기까지 따라하지 못하신 분들을 위해 유투브에 떠다니는 가이드 영상을 같이 추가해드립니다. 쉽게 따라하실 수 있으실거에요 :

 

 


 

 

 

 

여기까지 하셨으면 거의 다하신겁니다.

설치한 킹루트 앱을 실행하시고 루팅 버튼을 누르면 끝!!!!

생각보다 너무 쉬워서 당황하셨죠?^^

 

 


 

스마트폰을 루팅하는 이유가 여러가지가 있겠지만, 루팅을 하시고, 신뢰도가 낮은 앱들에서 이 루트 권한을 가져가버리게 되면, 정보유출이 될 수 있고, 스마트폰 보안이나 성능에 안 좋은 영향을 줄 수 있으니 잘 고려하셔서 진행 해주세요.

안녕하세요, 올해들어 AI(Artificial Intelligence) 스피커 붐이 일고 있는데요. 그 중에서도 선두주자 & 전 세계적으로 가장 높은 점유율을 기록하고 있는 Al 스피커로는 Amazon Alexa가 있습니다. 



Amazon에서 생산하는 인공지능 스피커들도 여러가지 종류가 있는데요...위 사진에서 큰 디바이스는 아마존 Tab이라고 부르고, 작은 디바이스는 Alexa Echo Dot 입니다.

Alexa Echo Dot은 작지만 Amazon App Store에서 스킬을 다운로드 받을 수 있어 기능은 막강합니다. 문재는 전원이 항상 연결되어 있어야 한다는 점이죠;; 

네 맞습니다ㅎㅎ내장배터리가 없으며 충전 아답터로 연결되어 있지 않으면 동작이 불가합니다.




반면에 아마존 Tab은 똑똑한 원통형 스피커로 배터리를 내장하고 있는 디바이스입니다. 음질도 당연히 Echo Dot 보다 좋습니다.

가격은 약 16만원 정도 하네요.




만약 집에서만 사용하실 예정이시고, 다른 블루투스 스피커가 이미 있다면 Echo Dot으로도 다른 블루투스 스피커와 연동시키실 수 있기 때문에, 아마존 Tab 보다 Echo Dot이 더 좋을 수도 있을 것 같습니다. 기능은 거의 유사하니까요^^;



이 AI스피커들을 동작 시키기 위해서는 인터넷에서 APK 파일을 다운로드 받아야 합니다. 

APK 파일을 다운로드 받으시고, 실행하시면 디바이스 세팅, Wi-Fi 연동, 지역설정, Skill 다운로드 등 AI 스피커를 동작시키기 위한 설정을 시작하시면 됩니다.


한국 구글플레이에서는 아직 다운로드 받을 수 없기 때문이지요. 구매도 해외직구로 해야 하고 한국어를 지원되지 않는다는 단점이 있지만, 그래도 이 디바이스들이 매력적인 이유는, AWS Lambda와 Alexa Developer 사이트에서 직접 스킬을 개발할 수 있기 때문일 것입니다.














아직 국내에서 출시되고 있는 AI 스피커들은 아직 이렇게 직접 스킬을 개발할 수는 없는 상태입니다.

Alexa에 다국어가 지원되기 전에 국내에서 출시되는 스피커들도 새로운 생태계를 만들어 해외로 시장을 늘려나가기를 기대해봅니다.^^




+ Recent posts