0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

langchain を使ってローカルにダウンロードしたDeepSeekとollamaを使ってテキスト生成を行ってみる。

Posted at

前回の投稿では、DeepSeekをローカルにダウンロードして ollama を使って動かすことができました。

ollama は 11434ポートのWebサービスとして裏で実行されていますので、langchain を使って ollama にアクセスしてテキスト生成を行ってみます。

langchain はLLMを活用するためのライブラリです。このライブラリの中に、ollama用のLLMs(OllamaLLM)というのがあり、テキスト生成や要約を簡単に行うことができますので簡単なサンプルを記載してみます。

参考↓
https://python.langchain.com/docs/integrations/llms/ollama/

サンプルコード

ollamaが動作しているWebサーバの指定方法がわからなかったので探したら

Ollama: Add base_url and seed parameters #24735
https://github.com/langchain-ai/langchain/pull/24735

というのがありましたのでサンプルコードに加筆しています。

python langchainOllamaLlms.py
from langchain_ollama.llms import OllamaLLM

# Ollama: Add base_url and seed parameters #24735
# https://github.com/langchain-ai/langchain/pull/24735

ollama = OllamaLLM(
    model="hf.co/bluepen5805/DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf:latest",
    base_url="http://localhost:11434",
    seed=42
)

print(ollama.invoke("こんにちは"))

めっちゃ簡単ですね!

実行結果

> python .\langchainOllamaLlms.py
<think>
ユーザーが「おはようございます」と日本語で挨拶してきた。まず、丁寧に返事をする必要がある。元のメッセージは「こんにちは」だが、ユーザーが「おはようございます」を使っていることに注意する。

日本語での応対では、時間帯に合わせた挨拶を返すのが一般的だ。午前中であれば「おはようございます」、午後なら「こんにちは」になる。しかし、ユーザーが「おはようございます」と使っているので、それに合わせて返事をするのが自然だろう。

また、相手の状況や時間帯を正確に把握していないため、安全策として時間帯に関係なく丁寧な挨拶をするのも良いかもしれない。例えば、「おはようございます。どのようなご質問ですか?」と続けることで、ユーザーが求めている情報を引き出すことができる。

さらに、日本語での会話では「おはようございます」の後に続けて「どうぞよろしくお願いします」と続けたり、その後に質問を繋げると親切だ。ただし、ユーザーが何を求めているのかわからないため、まずは挨拶と簡単な誘導をするのが適切かもしれない。

ここで考慮すべき点は、日本語でのマナーである。例えば、「おはようございます」の後に「~です」と丁寧に終わらせるか、そのまま直接質問を始めるか。ユーザーが簡潔に質問したいのか、それとも丁寧な対応を求めているのかを見極める必要がある。

また、ユーザーが日本語でメッセージを送っていることから、日本語での会話が求められていると判断できる。そのため、回答も日本語で行うべきだ。ただし、元のメッセージが「こんにちは」だった点に注意し、時間帯によっては「おはようございます」と答えるのか、「こんにちは」と返すのか迷うかもしれない。

しかし、ユーザー自身が「おはようございます」と使っているため、それに合わせて同じように挨拶する方が自然だろう。例えば、「おはようございます。どのようなご質問ですか?」と返すか、あるいはより丁寧な形で「おはようございます。どうぞよろしくお願いいたします。どのようなお手伝いが必要でしょうか?」と続けることができる。

ただし、ユーザーが最初の挨拶だけで終わっている可能性もあるため、その後どのように進めればいいのか考える必要がある。例えば、次の質問を期待している場合、そのまま会話を続けていくべきか、それとも情報を求めるために追加の指示をするべきか。

また、日本語でのコミュニケーションでは、相手への配慮や丁寧さが重要である。そのため、挨拶だけでなく、その後の対応も適切であることが求められる。ユーザーが何を求めているのかを正確に把握するために、質問で誘導するのが効果的だ。

総合的に考えると、「おはようございます。どのようなご質問ですか?」と返し、その上で必要な情報を尋ねるのが良いだろう。これにより、ユーザーの求めている内容を正確に把握でき、適切なアドバイスやサポートができる。
</think>

**ステップバイステップでの対応:**

1. **時間帯の判断と挨拶の返答**
   - ユーザーが「おはようございます」と使用しているため、午前中の時間帯を想定し同様に返す。
   - 「おはようございます。どのようなご質問ですか?」で丁寧に応じる。

2. **会話の方向性の誘導**
   - 挨拶後に直接質問を開始することでユーザーのニーズを探る。
   - 「お手伝いが必要な場合は何でもおっしゃってください」と続けて親切さを示す。

3. **日本語マナーへの配慮**
   - 丁寧語を使用し、終止符で句末を締めくくることで格式に沿った会話となる。
   - 「どうぞよろしくお願いいたします」などの追加フレーズでより親切さを強調する。

4. **情報の正確な把握**
   - 質問を直接促すことでユーザーが何を求めているか迅速に判断可能。
   - 例:「例えば、どのような内容をお探しですか?」

**最終的な返信例:**

\```
おはようございます。どのようなご質問ですか?
どうぞよろしくお願いいたします。例えば、どのような内容をお探しですか?
\```

この対応により、ユーザーの求めている情報を正確に把握しつつ、日本語として適切なマナーを守ったコミュニケーションが実現できます。

GPUもちゃんと使っているのがわかります。
image.png

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?