# Build a LINE AI Bot with Ollama

Source: https://langbot.app/docs/en/recipes/ollama/line

Step-by-step guide to running a Ollama-powered AI bot on LINE with LangBot: model setup, bot credentials, networking, testing and troubleshooting.

This recipe puts a Ollama model behind a LINE bot. LangBot receives messages from LINE, runs them through a pipeline, and sends the answer back, so you do not write any platform code.

Run open models locally with Ollama and serve them through LangBot's built-in Agent, so conversations never leave your machines.

## What you need

- A running LangBot instance: [LangBot Cloud](https://space.langbot.app/cloud) (no server needed) or a [self-hosted deployment](https://langbot.app/docs/en/deploy/langbot/docker.md) with Docker or `uvx langbot`.
- A Ollama account or server you can call from LangBot.
- A Messaging API channel in the [LINE Developers Console](https://developers.line.biz/): **Channel Secret** and **Channel Access Token** (click **Issue**).

## Networking

LINE calls a webhook, so LangBot needs a public HTTPS URL. LangBot Cloud includes a domain and HTTPS.

## 1. Add the Ollama model

1. Install Ollama and pull a model (for example `ollama pull` followed by the model name).
2. In LangBot, open **Models** and add an LLM model with the provider set to Ollama and the request URL pointing at your Ollama server (by default port `11434`).
3. If LangBot runs in Docker, `localhost` is the container itself: use the host's address (for example `host.docker.internal`) instead.

## 2. Create a pipeline

Open **Pipelines** in the LangBot WebUI, create a pipeline (or edit the default one) and set **AI** as follows.

| Field           | Value                                                                  |
| --------------- | ---------------------------------------------------------------------- |
| Runner          | **Local Agent** (built-in Agent)                                       |
| Model           | The model you just added. You can add fallback models.                 |
| Prompt          | Instructions: who the bot is, tone, what it must not do.               |
| Knowledge Bases | Optional. Attach a knowledge base so answers come from your documents. |

## 3. Create the LINE bot

1. Create a bot with the **LINE** adapter and enter the Channel Secret and Channel Access Token.
2. Copy the webhook callback URL from LangBot into the channel's **Webhook URL**, verify it, and turn on **Use webhook**.

## 4. Bind and test

Open the bot, select the pipeline you created, save and make sure the bot is enabled.

Add the official account as a friend with its QR code and send a message.

## Troubleshooting

- Small local models may not support tool calling well; leave **Tool Use** off for models that do not support it.
- Webhook verification fails: check the URL and that HTTPS works from the public internet.
- No replies: turn off LINE's auto-reply messages in the Official Account Manager so they do not answer instead of the bot.
- Check **Monitoring** in the WebUI: every message, pipeline run and error is recorded there.

## FAQ

### Do I need a server with a public IP for LINE?

Yes, or use LangBot Cloud. LINE calls a webhook, so LangBot needs a public HTTPS URL. LangBot Cloud includes a domain and HTTPS.

### Does the LINE bot support streaming replies?

Check the [platform feature matrix](https://langbot.app/docs/en/insight/platform-features.md) for what this platform supports. Replies are delivered once the AI back end has finished.

### Can the same Ollama setup serve other platforms too?

Yes. A pipeline can be bound to many bots, so one configuration can answer on several platforms at once.

## Related guides

- [Full LINE setup guide](https://langbot.app/docs/en/usage/platforms/line.md)
- [Model configuration](https://langbot.app/docs/en/usage/models/readme.md)
- Other AI back ends on LINE: [Dify](https://langbot.app/docs/en/recipes/dify/line.md) · [n8n](https://langbot.app/docs/en/recipes/n8n/line.md) · [Coze](https://langbot.app/docs/en/recipes/coze/line.md) · [Langflow](https://langbot.app/docs/en/recipes/langflow/line.md) · [DeepSeek](https://langbot.app/docs/en/recipes/deepseek/line.md)
- Ollama on other platforms: [Telegram](https://langbot.app/docs/en/recipes/ollama/telegram.md) · [Discord](https://langbot.app/docs/en/recipes/ollama/discord.md) · [Slack](https://langbot.app/docs/en/recipes/ollama/slack.md) · [Lark (Feishu)](https://langbot.app/docs/en/recipes/ollama/lark.md) · [DingTalk](https://langbot.app/docs/en/recipes/ollama/dingtalk.md) · [WeCom (internal app)](https://langbot.app/docs/en/recipes/ollama/wecom.md)
