tl-dr

-Can someone give me step by step instructions (ELI5) on how to get access to my LLM’s on my rig from my phone?

Jan seems the easiest but I’ve tried with Ollama, librechat, etc.

I’ve taken steps to secure my data and now I’m going the selfhosting route. I don’t care to become a savant with the technical aspects of this stuff but even the basics are hard to grasp! I’ve been able to install a LLM provider on my rig (Ollama, Librechat, Jan, all of em) and I can successfully get models running on them. BUT what I would LOVE to do is access the LLM’s on my rig from my phone while I’m within proximity. I’ve read that I can do that via wifi or LAN or something like that but I have had absolutely no luck. Jan seems the easiest because all you have to do is something with an API key but I can’t even figure that out.

Any help?

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    1
    ·
    21 hours ago

    I choose Ollama because it was supposed to be one of the easier loca AIs to set up.

    Well, the ollama bit is up, which is why you can use it on the PC. The problem is network connectivity between the Windows PC and the phone.

    Opening a port between two things on the local network is going to be pretty much the same for anything. Some software packages — I dunno about LLM chat stuff — make use of a third, outside system as a point to coordinate, so that software only has to open outbound TCP connections to the Internet. But for local communication, it’s gonna look pretty similar. If you put koboldcpp or llama.cpp or whatever on your machine, you need the same connectivity, though it might default to using a different port number.

    I’m happy to keep banging away if you’re also willing, though. I mean, this does kinda narrow it down. If you don’t want to do so though, remove that firewall rule that we added earlier from the Windows PC. If you do:

    considers

    The next step is seeing where the break in connectivity is.

    I’m not familiar with iOS, but let me see if there’s a software package for it that will let it open a TCP connection and preferably ping (and ideally show the ARP cache to see whether Ethernet packets are getting from the phone to the Windows machine at all, though that may not be viable).

    Basically, would be nice to see whether packets can currently get from the phone to the PC and back.

    kagis

    Looks like Windows Firewall blocks ICMP by default, which is traditionally used by ping, the simple protocol to see if one host can reach another on the network. Mmmmf.

    And it sounds like ARP isn’t available on a non-jailbroken iPhone, which would be the simplest way to see whether a packet is making it from the iPhone to the PC. I was worried would be the case.

    Hmm. This is a little less convenient in that I don’t have tools that I normally would when trying to troubleshoot network problems on a Linux system.

    thinks

    I guess the simplest thing available, cuts things down as far as possible in terms of connectivity between the two that should be able to reach from the iPhone to the PC should be a TCP connection.

    I don’t know the iOS software library well, but lemme search for a telnet client. I’m sure that it’ll have one; every platform does.

    searches

    Oh, this is even better. It looks like there’s some iOS app, “iSH”, with a tiny Alpine Linux environment for iOS, kinda like Termux on Android. That’ll have telnet and probably other network diagnostic tools, and those I am familiar with, so I don’t have to guess from screenshots how things work. You should be able to try to open a TCP connection from the phone to the PC with the Linux telnet client in that.

    goes looking around

    Okay. If you’re willing to give this a shot, it sounds like the way this works is:

    https://apps.apple.com/us/app/ish-shell/id1436902243

    Install that from the iOS store.

    When opened, it should show a Linux terminal. If it works like Termux, it’ll have basically nothing from Alpine Linux installed, no telnet client, just a few simple commands. You’ll be looking at a prompt that probably looks something like iPhone:~#.

    Then if you run (don’t type the pound sign — it’s just a convention to include it, to show that it’s something to type at a prompt):

    # apk install telnet
    

    That should install the Linux telnet client inside the iSH app using the Alpine Linux package manager.

    Then to try to open a TCP connection from the phone to the Windows PC, you want the private IP of the Windows PC, the thing you see in ipconfig (which I’ll type as 10.1.1.2 here, but replace with yours):

    # telnet 10.1.1.2 11434
    

    That’ll try to open a TCP connection from the phone to port 11434 on the PC.

    Now, what would happen if everything were working correctly, is that the phone would send an ARP request saying “what is the MAC address — the Ethernet address — of the machine with IP address 10.1.1.2 on the local network?” The wireless access point would hand this to the PC. The PC would respond. The phone would then send a series of packets to that IP address to open a TCP connection on port 11434.

    My guess is that you’ll see one of several things at this point.

    First, it might be that the wireless access point is refusing to let packets from the phone reach the PC at all — they only let the phone talk to the Internet, not to the PC. Some wireless access points can be configured to do this or have a “guest” wireless network that impose this constraint. Then the phone won’t get an ARP response, since the PC will never see the ARP query. That’ll look like this (using a network I’m on at the moment to demonstrate):

    $ telnet 192.168.1.35
    Trying 192.168.1.35...
    telnet: Unable to connect to remote host: No route to host
    $
    

    Second, it might fail because I dicked up in some way and Windows Firewall is still blocking the phone from connecting to the PC. The ARP request is going out, the response comes back from the PC, the phone tries to open a TCP connection to the IP address on the host with the specified MAC address, and never gets a response. If that’s the case, it’ll probably look like this:

    $ telnet 192.168.1.126 7500
    Trying 192.168.1.126...
    telnet: Unable to connect to remote host: Connection timed out
    $
    

    If that’s what you get, the problem is likely the Windows Firewall configuration (well or theoretically the wireless access point could be configured to do that, but I doubt it).

    Third, it might succeed. That’ll look like this:

    $ telnet 192.168.1.126 6000
    Trying 192.168.1.126...
    Connected to 192.168.1.126.
    Escape character is '^]'.
    

    If you see that, you can open a TCP connection from the phone to the PC, and whatever issue you’re hitting with Reins isn’t a network problem. Maybe I gave the endpoint syntax wrong, for example. But the issue will be at the application level, not the network level.