Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/691151cc-3da4-800f-9b7c-81b0e0d10369
(section)
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Assistant: コードを確認しました。全体としてはほぼ完成ですが、AI から返ってくる余計な文字列(final 以降抽出)は、今の処理だと AI が final を返さない場合や不要に反応する場合 があり、少し不安定です。 === コードを確認しました。全体としてはほぼ完成ですが、AI から返ってくる余計な文字列(final 以降抽出)は、今の処理だと AI が <code>final</code> を返さない場合や不要に反応する場合 があり、少し不安定です。 より確実に 純粋なコードだけを抽出して挿入 する方法を提案します。 ==== ### ==== * 今の lastIndexOf("final") は AI が返さない場合に無意味です。 * 代わりに すべての制御トークンと Markdown を除去 → trim すれば十分です。 <syntaxhighlight lang="java">private String extractCodeFromAIResponse(String response) { // 1. 不要な制御トークン(<|…|>)を削除 String cleaned = response.replaceAll("<\\|.*?\\|>", ""); // 2. Markdownコードブロック(</syntaxhighlight>java や ``<code>)を削除 cleaned = cleaned.replaceAll("(?m)^</code>`<code>.*$", ""); cleaned = cleaned.replaceAll("</code>`<code>", ""); // 3. 前後空白を削除 return cleaned.trim(); } <syntaxhighlight> * これだけで System.out.println("Hello World!"); のような純粋なコードだけが返ってくるようになります。 ===== - AI サーバ側で cursor_offset を使って補完していない場合は、JSON から削除しても OK ===== * 現状のまま送っても問題ないですが、AI によっては無視されます。 ===== </syntaxhighlight>java ===== document.replace(cursorOffset, 0, aiText); </code>`` * extractCodeFromAIResponse で余計な文字を削除した後に挿入すると、Eclipse 上に余計な文字なしで直接追加できます。 ===== - final に依存しない抽出に変更 ===== * 制御トークンと Markdown を正規表現で除去 * 前後空白 trim でクリーンなコードだけを挿入 この改善で AI が返すコードが直接 Eclipse に追加可能 になります。 希望であれば、私はこの修正版を組み込んだ 最終版 AISuggestHandler を提示できます。 提示しますか?
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)